有一个dll在delphi有问题,但是在BCB调用就没有问题。(个DLL是短信协议CMPP1.2版本的dll)

daozhao 2002-03-20 06:12:05
delphi代码如下。
procedure TForm1.Button1Click(Sender: TObject);
begin
if InitCMPPAPI(PChar(Edit1.text))=0 then
begin
showmessage('ok');
end
else
begin
showmessage('false');
end;
end;
end;//出错地方

BCB 代码如下
void __fastcall TForm1::Button1Click(TObject *Sender)
{

if (InitCMPPAPI(Edit1->text.c_str())==0 )
{
ShowMessage("OK");
}
else
{ ShowMessage("false");
}

}
bcb的程序按下button1后显示左OK.一切正常。
delphi的程序按下button1后显示左OK.整个程序退出了。不知道什么原因。
进行代码跟踪的时候是button那个过程的end,地方出了个读0x00000000地址错误出来。
但是如果我在Button1Click中加入该DLL的其他函数就吴会退出整个程序。最多有时候报错。但是在BCB中就出过错。

有没有人知道啊。
这个DLL是短信协议CMPP1.2版本的dll来的。
还有谁有CMPP1.2版本的双向模拟器啊。给个下载地址来,多谢。
...全文
22 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
meijg 2002-04-02
  • 打赏
  • 举报
回复
如果dll是vc做的,就会有这个问题,应该是传递参数时堆栈的使用方式不同造成的,曾经遇到这个问题,后来跟踪内存发现,出栈过程不对,后来手工把堆栈指针改回去才行。
看看有没有其他好的方法
bcb不出问题的原因是因为c和pascal的机制不一样
westfly 2002-04-02
  • 打赏
  • 举报
回复
是否函数声明有问题?
daozhao 2002-03-21
  • 打赏
  • 举报
回复
有没有人知道啊。。。可以再加的分嘎。

828

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧