delphi调用vc写的dll的方法

1. 在VC中新建一个 DLL 工程。
写如代码,如:

extern "C"
{
  _declspec(dllexport) int getPPLength();
  _declspec(dllexport) int npn(int m, int n);

}

int getPPLength()
{
  return 5* 12;
}

int npn(int m, int n) {
    int sum;
    sum = (m-1) * (n-1);
    return sum;
    //return 100;
}

编译生成 DLL 文件。
2。 在Delphi 中申明
function getPPLength:Integer;cdecl; external 'dll.dll';
function npn(m:integer;n:Integer):Integer;cdecl; external 'dll.dll';


即可。
注意:这里我是用 cdecl 参数调用方式!

 

 

设有以下三个变量:
var
  s:string;
  p:pchar;
  a:array[1..20] of char;
那么三者之间的转换如下:
1、字符串到PChar
    p:=PChar(s);
2、PChar到字符串
    s:=p;
3、PChar到字符数组
    StrCopy(@a,p);
4、字符数组到PChar
    PChar(@a);
5、字符串与字符数组之间的转换就只有通过PChar来中转了。例如下面这个例子:
procedure TForm1.btn1Click(Sender: TObject);
var
  str:array[1..10] of char;
begin
  StrCopy(@str,PChar(mmo1.Text));
  mmo2.Text:=PChar(@str);
end;

 

你可能感兴趣的:(c,function,String,Integer,dll,Delphi)