Delphi的函数如下:
function DelphiStr( S : string):string;stdcall;
begin
Result := uppercase(s);
end;
VC++里面的实现代码:
#include <stdio.h>
#include <windows.h>
typedef char*(CALLBACK*lpDelphiStr)(char*); //函数指针类型,CALLBACK是必须的
int main()
{
HINSTANCE hDll; //声明句柄
DelphiStr delstr = NULL; //声明函数指针
lpMaxNum maxnum = NULL;
char a[100]="aBcDeFgHiJ";
hDll = LoadLibrary("Test.dll"); //加载Test.dll
if(hDll){
delstr = (lpDelphiStr)GetProcAddress(hDll, "DelphiStr");//获取DelphiStr的地址并强制转换
if(delstr){
printf("DelphiStr(\"aBcDeFgHiJ\")=%s\n", a, delstr(a));//测试DelphiStr
}
else{
printf("Can\'t find DelphiStr\n");
}
}
else{
printf("Can\'t find Test.dll\n");
}
return 0;
}