小知识
C++中以&的参数在Delphi必须以const或者var申明,否则会产生错误。
WIN32PROJECT1_API void test8(RECT &a) {
a.left = 1;
a.top = 2;
a.right = 3;
a.bottom = 4;
}
此时参数为 RECT &a,在Delphi中有两种申明方式,各有不同
1、 方式一 var
procedure test8(var a: TRect); cdecl; external Windll name 'test8';
2、方式二 const
procedure test8(const a: TRect); cdecl; external Windll name 'test8';
注意
这个DLL是你写的么,尽量不要返回一个char*,用参数保存返回值和返回值的长度。
这里你最好是申请个buffer,copy进去再返回这个buffer吧,记得释放。
如果要返回字符串,要在主调程序中 分配好内存,然后函数内把要返回的字符串写入内存。对于字符串要占用的内存,由主调程序分配和释放,否则就有可能造成内存泄漏。
Delphi 与 C/C++ 数据类型对照表
http://blog.csdn.net/huang_xw/article/details/7908616