读书人

VB 申明转 DELPHI解决思路

发布时间: 2012-10-23 12:12:22 作者: rapoo

VB 申明转 DELPHI
Private Declare Function MSTC Lib "test.dll" Alias "XFile" (ByVal k As String, ByVal G As String) As String

function MSTC(k:string;G:string):string;stdcall;external 'test.dll' Name 'XFile';

把这句转成DELPHI的,我自己转了很多次,都是不成功,用VB 调用这个DLL正常,我转成DELPHI的exe就自动退出了.不知道问题在那了.

[解决办法]
把string换成pchar试试
[解决办法]
VB中String 实际上就是OLE标准的BSTR,在Windows SDK中的定义中
typedef OLECHAR* BSTR;
typedef WCHAR OLECHAR;
typedef wchar_t WCHAR;
所以,它实际上是宽字符指针,
delphi中有StringToWideChar函数,你使用它转换成PWideChar

function MSTC(k:PWideChar;G:PWideChar):PWideChar;stdcall;external 'test.dll' Name 'XFile';
[解决办法]

Delphi(Pascal) code
function MSTC(k:PWideChar;G:PWideChar):PWideChar;stdcall;external 'test.dll' Name 'XFile'; 

读书人网 >.NET

热点推荐