写如代码,如:
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;