C++ BUILDER 如何调用 Delphi写的接口
Delphi接口说明:库文件名称为'HpCardLink.dll'
函数名 :function GetCardNo(out sRyKh,sMsg:PChar):SmallInt;stdcall;external
/////////////////////////////我的做法///////////////////////////////
1.静态做法:
用 implib.exe HpCardLink.lib HpCardLink.dll 生成库文件。
然后在程序中导入库。
头文件中声明 extern "C" int __stdcall GetCardNo(PChar ,PChar );
实现文件中 调用
PChar j;
PChar jj;
int hh= GetCardNo( j, jj); 报错 非法访问
2.动态做法。
头文件中声明 extern "C" int __stdcall GetCardNo(PChar ,PChar );
实现文件中 调用
user_GetCarNO GetCarNO;
if(LoadLibrary("HpCardLink.dll")
if ((user_GetCarNO)GetProcAddress(hInst, "GetCardNo")
{
PChar j;
PChar jj;
int hh= GetCarNO( j, jj); //报错 非法访问
}
请各位高手指教指教一下菜鸟,感谢不尽!!!
[解决办法]
显然, 这个函数的两个参数需要代入两个缓冲的地址. 但是, 缓冲的大小不好确认, 最好能咨询一下原作者.
这样试试:
char szRyKh[256] = { 0 };
char sMsg[256] = { 0 };
int hh = GetCardNo(szRyKh, sMsg);