Delphi怎样调用C++编译的DLL ( 积分: 100 )

  • 主题发起人 主题发起人 ztdzluoping
  • 开始时间 开始时间
Z

ztdzluoping

Unregistered / Unconfirmed
GUEST, unregistred user!
各位兄弟:
小弟有一急事相求,就是我想用DELPHI调用C++写的动态链接库,
int fncombinePic(char** pFileName,int size,char* exPortName)
这是C++里的函数.
pFileName是字符串数组,SIZE是整型,exPortName是字符串类型,函数返回的整型数据.
function fncombinePic(var pFileName:array of string;Size:Integer;exPortName:string):Integer;cdecl;external 'combinePic.dll';
我写了上面的函数,但不对.
谁知道应该怎样调用,请告知.
特别着急!!!!!!!!!
谢谢了。
 
function fncombinePic(var pFileName:PChar;Size:Integer;exPortName:PChar):Integer;cdecl;external 'combinePic.dll';
 
这样不行的。因为pFileName在C++里是数组,用变量不行.我要用数组往里传递参数.
 
function fncombinePic(pFileName:PPChar;Size:Integer;exPortName:PChar):Integer;cdecl;external 'combinePic.dll';
 
godelphi2004,的定义是对的,在vc中char[]与char*是可以互相转化的。
 
//int fncombinePic(char** pFileName,int size,char* exPortName)
Type
TCPPArray = array[0..0] of PChar;
Function fncombinePic(var pFileName:TCPPArray;
Size : integer; exPortName: Pchar):Integer; (*stdcall*)cdecl; external 'combinePic.dll';
{通过对数组的越界访问达到目的.
可以对pFileName进行数组方式的访问.但记得数组的下标一定要是变量不能是常数.否则越界检查会编译通不过
}
 
后退
顶部