用DELPHI调用C写的DLL时出的问题!!!!! 不知道理C语言采用什么压栈格式,还是使用缺省的。试着这样声明:procedure FormularyEntry(InhosNo, BillNo, ErrorMsg: PChar); cdcel; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DLL的输出函数一般用stdcallC的 char *对应delphi的Pointer,PChar等,也可以用array[0..n] of Char To hellion(恶人):Pointer怎么用?应该用哪个比较好? 你必须说清楚函数的压栈方式。不说清楚,谁能帮你啊?在C中,如果不特别声明,那么函数压栈模式是cdcel,但是DLL中,通常采用的压栈方式是stdcall。Delphi中,缺省的压栈方式又是register。C中的char *对于与Delphi的PChar。你出错,八成是由于函数参数的压栈没弄好造成的。 同意chechy(chechy)的说法我也遇到过这样的问题,procedure(); stdcall;老出地址错改为cdecl后就解决了.Delphi中过程或函数的参数的传递顺序(压栈方式)与C不一样。还有,你如果传的参数是string类型的,要注意先分配空间. To chechy(chechy),bluedelphi():那该如何解决呢? 那你源码总是有的吧,把Exports的代码,及相关函数声明的代码贴出来。 不好意思,Exports指的是什么? 你能使用的DLL函数,都是DLL Exports出来的。 各位请帮帮看看这个内存泄露问题吧!!! CPort接收数据问题? Delphi 插入记录异常时,怎么判断是不是因为唯一性的原因? 有谁研究过cxLookupComboBox,进来看看 怎么搞数据备分?? #号和类型转换char相同吗? 怎么查询paradox表中的memo字段? 请问dbgrid的问题? 救救我,为什么不能查询??? 画BUTTON控件怎么画,画好了怎么用呀? 想深入学习Delphi那些书比较合适? 请问如何解决fastreport中自动折行后,汉字无法正常显示的问题?保证送分!
C的 char *对应delphi的Pointer,PChar等,也可以用array[0..n] of Char
Pointer怎么用?应该用哪个比较好?
在C中,如果不特别声明,那么函数压栈模式是cdcel,但是DLL中,通常采用的压栈方式是stdcall。Delphi中,缺省的压栈方式又是register。
C中的char *对于与Delphi的PChar。你出错,八成是由于函数参数的压栈没弄好造成的。
我也遇到过这样的问题,procedure(); stdcall;老出地址错
改为cdecl后就解决了.
Delphi中过程或函数的参数的传递顺序(压栈方式)与C不一样。
还有,你如果传的参数是string类型的,要注意先分配空间.