DELPHI调用VC编写的DLL 函数参数为LPTSTR

注意点:LPTSTR 对应的是PAnsiChar 或者PWideChar 你问问他的编译选项,要是定义了unicode就是PWideChar 否则是PAnsiChar

 

这里我是用UNICODE编程的,所以用到的是PWideChar

 

在VC写的A.dll里添加一个函数为

extern "C" __declspec(dllexport) LPTSTR WINAPI Do(LPTSTR i) { return i; }

 

在DELPHI调用为

type TDoFunc=function(str:PWideChar) :PWideChar;stdcall; var Th:Thandle; TDo:TDoFunc; Tp:TFarProc; str:PWideChar; strA,strB:PWideChar; begin Th:=LoadLibrary('A.dll'); {装载DLL} if Th>0 then try Tp:=GetProcAddress(Th,PChar('_Do@4')); if Tp<>nil then begin TDo:=TDoFunc(Tp); strA:='bread'; str:=TDo(strA); ShowMessage(str); end else ShowMessage('没有找到函数'); finally FreeLibrary(Th); {释放DLL} end else ShowMessage('dll文件没找到'); end;

这样就OK了,(*^__^*) 嘻嘻

好开心哦,又解决了一个问题

你可能感兴趣的:(DELPHI调用VC编写的DLL 函数参数为LPTSTR)