Delphi中调用标准C动态链接库的问题 上面写得有点问题,其实就是把so换成dll。另外我还需要在LINUX下的KYLIX中进行相应的工作,因此请哪位如果懂的话,指教一二吧。谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你在C中是不是stdcall啊?如果不是的话在Delphi中要用cdecl. 是这样的,这个用标准C写的DLL其实运行在LINUX下,我不知道在LINUX编译环境中能不能使用STDCALL,当然我会试试看的。我想知道的是,如果我用VC写标准C的动态链接库,如果写成char* GetString(int n , char buf[])或者另外一个int GetValue(int n , char buf[]) //buf是传出的,这在DELPHI中又要怎么定义 呢,是不是写成function GetString(n:integer ; buf :pchar):pchar ;cdecl; external '/mypath/test.so';就可以了呢? 我改用cdecl了,但是没有用啊,仍然会出错,现在关键的问题就是在于传出与返回字符串有问题,其他例如传入字符串进行处理,以及返回整型数等都没有问题了,字符串的问题非常麻烦。在标准C的函数定义里,char buf[]好呢,还是char* buf好。我觉得好象有点不同。我的DLL中调用成功的函数例子是 int printUPPERCASE(char inLine[])然后我在DELPHI中这样声明function printUPPERCASE(inLine : pChar) : integer ; external "/mypath/test.so"这个函数调用可以成功,我可以正确地传入字符串,并且返回整型数。就是字符串返回与传出没有办法。希望高手能够鼎力相助 delphi 一个简单代码 请大家帮忙看一下 什么意思? 我想用UPDATE命令更新所有的记录,怎么弄 问个C# Dock问题? 第一次创建文件,并写文件的时候出错? 一直出现地址什么的提示,高手帮忙啊! 怎么样通过RS232串口与另一台计算机连接? 各位大侠请进!小弟有一些常识性的问题请教!急! 打包时,怎么样实现在安装的同时,也把后台数据库也建好? 1。用TFileStream删除一个文件该如何做? 2。TListItems的insert方法如何用呀? 为什么不能向tdbedit中输入数据? 关于数据备份的问题 关于Canvas对象的问题。
char* GetString(int n , char buf[])
或者另外一个
int GetValue(int n , char buf[]) //buf是传出的,这在DELPHI中又要怎么定义 呢,
是不是写成
function GetString(n:integer ; buf :pchar):pchar ;cdecl; external '/mypath/test.so';
就可以了呢?
在标准C的函数定义里,char buf[]好呢,还是char* buf好。我觉得好象有点不同。
我的DLL中调用成功的函数例子是
int printUPPERCASE(char inLine[])
然后我在DELPHI中这样声明
function printUPPERCASE(inLine : pChar) : integer ; external "/mypath/test.so"
这个函数调用可以成功,我可以正确地传入字符串,并且返回整型数。就是字符串返回与传出没有办法。
希望高手能够鼎力相助