我想要调用一个DLL库文件,这个库里有个DllGetClassObject函数是用来创建一个对象的,然后在用创建的对象调用函数, VB里是 Set oSys = CreateObject("FTSYS.System")
lsInfo = oSys.Init("Hotel")这么调用的,但在PB里这么建里这个对象呢,我用ANY类型,结果不好使,
急,
请大家帮帮忙,谢谢了
API调用规范及方法
外部函数就是用其他语言编写并储存在动态链接库里面的函数。这些动态链接库可以存放多个外部函数,外部函数可以是用VC++、Delphi等其他编程语言编写的。但是无论用什么语言编写,它都要符合基本的原则,就是必须用Pascal(16位)或标准(32位)调用规则编写,否则在PB中将无法调用。
PB中调用外部函数的语法是:
{access} FUNCTION returndatatype FunctionName ( { { REF} datatype1 arg1, …, {REF} datatypen argn}) LIBRARY “libname” ALLAS FOR “extname”
或:{access} SUBROUTINE SubroutineName ( { {REF} datatype1 arg1, … ,{REF} datatypen argn })
LIBRARY “libname” ALLAS FOR “extname”
由于编写语言的不同,所以肯定会有数据类型不匹配的问题,下表列出了C++和PB数据类型的转换对应关系:
C++数据类型 PB数据类型
Byte,Char Char
Bool Boolean
Char Blob
Char* String Ref
Double Double
Dword Ulong
Float Real
Handle Uint
Hwnd Ulong
Int Integer
Long Long
Lpbyte String Ref
Lpdword Ulong
Lpint Integer
Lplong Long
Lpstr String Ref
Lpviod String
Lpword Uint
Ulong/unsigned long Ulong
Unsigned int/Unsigned Short/Word Uint