I have solved the calling problem with dark basic pro. As I am writing new commands the functions must be declared cdecl as it says in tec documentation. If you have a function passing a string back to dbp then you have to include a dummy parameter in the function call.
Thus
function GetString(i:integer):LPSTR;cdecl;
should be
function GetString(dummy:LPSTR,i:integer):LPSTR;cdecl;
although you have declared a function with two parameters you only pass the integer from db pro. DBpro sorts this out when you make your function declaration in the import string table for new commands.
Why I am programming in dbPro.
Simply because I like it, it is simple and easy to use. The printed documentation is excellent. I can protype code in dbpro that might take weeks to construct in an other programming languages. I can test 3d models easily. It is a function based language that does not contain a huge clutter of complex, over encapsulated nested classes and objects such as .net or java. It compiles to native 32bit code. I am new to 3D games programming so dbpro is giving me the opportunity to learn the techniques without getting bogged down in the DirectX SDK to start with
I can program in C++, VB6 and delphi.
C++ acheives excellent results, but is a ball ache to program in.
Delhi is very good for certain things, but the digital documentation is v bad.
VB6 is very good for business software but is now obsolete.
dbpro is a good language because it allows you to create your own functions in other languages so you can leaverage in advanced techniques when you need them. I also like dbpro because it is cheap and accessible to the little guy. The other programming languages cost a lot of money. If I wanted to teach somebody to program from scratch I would pick dbpro every time.
Jack Taylor