各位兄台:
我在用Delphi调用VC做的动态链接库时,有下面这样一个函数,目的是把Dll中的数组传给delphi,这个函数在delphi中如何调用啊?请各位赐教,不胜感激!!
extern "C" __declspec(dllexport) int outparameter(int *test,int length)
{
for(int i=0;i<length;i++)
test[i]=m_c[i]; return 1;
} 我在Delphi中申明如下:
interface
function outparameter(test:pinteger):integer;cdecl;implementation
function outparameter;external 'MaxMin.DLL' name 'outparameter';调用的地方如下:
procedure TForm1.Button1Click(Sender: TObject);
var a:array[1..2] of integer;
begin outparameter(a);
showmessage(inttostr(a[0]));
end;可编译就通不过,麻烦各位给小弟看看啊?谢谢
我在用Delphi调用VC做的动态链接库时,有下面这样一个函数,目的是把Dll中的数组传给delphi,这个函数在delphi中如何调用啊?请各位赐教,不胜感激!!
extern "C" __declspec(dllexport) int outparameter(int *test,int length)
{
for(int i=0;i<length;i++)
test[i]=m_c[i]; return 1;
} 我在Delphi中申明如下:
interface
function outparameter(test:pinteger):integer;cdecl;implementation
function outparameter;external 'MaxMin.DLL' name 'outparameter';调用的地方如下:
procedure TForm1.Button1Click(Sender: TObject);
var a:array[1..2] of integer;
begin outparameter(a);
showmessage(inttostr(a[0]));
end;可编译就通不过,麻烦各位给小弟看看啊?谢谢
而Delphi的默认调用是__stdcall
所以会出问题.解决办法:
在VC写dll的时候,在Project->Setting中的C/C++标签页里面,
Category选择code generation,然后在Calling convention里
面选__stdcall就可以了.
http://community.csdn.net/Expert/topic/4200/4200306.xml?temp=.801861
对应Delphi里的是Cardinal类型.