怎样才能让用Delphi写的动态链接库(DLL)能让C++Builder调用(100分)

W

wuqiu

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi写了一个动态链接库,其中有一个函数为:
function GetDataToFile(nUrl,nFileName:pChar):Boolean;
begin
...
end;

然后我用Delphi写一个EXE文件来调用它,得到的结果是正确的,
但是我用C++Builder写一个EXE文件来调用它,老是出错。我在C++Builder中是这样定义的:
typedef bool (TGetDataToFile)(char* nUrl,char* nFileName);
实际调用时如下:
char *Url="http://127.0.0.1/test.asp";
char *FileName="test.txt";
if (GetDataToFile(Url,FileName))
Memo1->Lines->LoadFromFile(FileName);
else
Memo1->Text ="error";
这样老是出现异常错误;后来我在动态链接库中加入一句
ShowMessage(nUrl);
结果出现一大堆乱码,用Delphi调用时却正确;
请帮忙解决这个问题!
 
function GetDataToFile(nUrl,nFileName:pChar):Boolean;stdcall;
--------
以下也加上调用规则 __stdcall
typedef bool (TGetDataToFile)(char* nUrl,char* nFileName);
 
bcb 中有一个implib文件,用来从dll中生成.lib文件,你试试
 
非常谢谢jsxjd,顺便再问一下,用C++Builder写出的DLL要给Delphi调用,双方又要怎样定规则呢
 
标准的delphi dll,一定能够被c++build 调用
 
顶部