如何将这个C函数转成Delphi 的函数?
我不熟悉C语言这种无类型指针返回,如何转成Delphi的函数
const void* TTSLIBAPI QTTSAudioGet(const char* sessionID, unsigned int* audioLen, int* synthStatus, int* errorCode)
请教!
[解决办法]
这样?
type pTSLIBAPI =^TTSLIBAPI; TTSLIBAPI=record a :Integer; end;...function QTTSAudioGet(const sessionID:PChar;var audioLen,synthStatus,errorCode:Cardinal):pTSLIBAPI;
[解决办法]
function QTTSAudioGet(sessionID : PAnsiChar; audioLen:PDWORD; synthStatus:PInteger; errorCode:PInteger):Pointer;调用约定;external 'XXX.DLL';
TTSLIBAPI 应该是调用约定或者__declspec(dllexport) 这样声明导出的.
另外C++调用约定也可以在DEF文件中单独定义.你要知道一下这个调用约定是什么.把调用约定换上就好了.
Delphi支持的调用约定有register,cdecl,stdcall,pascal.C++支持的有__cdecl,__stdcall,__pascal.
[解决办法]
还有safecall,一般Windows的API都用stdcall/safecall
无类型指针可以用Pointer,它可以接收任何类型
function QTTSAudioGet(sessionID:PChar; audioLen:Pointer;synthStatus, errorCode:PInteger):Pointer;stdcall external 'abc.DLL';