delphi XE10.2 调用C++ DLL

leo_chenji 2018-07-16 11:07:07
有个DLL文件,里面的接口函数 BOOL NetSet(const char* address, int port),我在Delphi引用的写法是 function NetSet(addr:PChar; port:integer):Boolean; stdcall; external 'lib.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
IPAddr: PChar;
begin
IPAddr := PChar(Trim(Edit1.Text));
if NetSet(IPAddr, StrToIntDef(Edit2.Text, 0)) then
ShowMessage('设置成功!')
else
ShowMessage('设置失败!');
end;

请教下,把C++DLL里的char*在Delphi定义成PChar是否正确?
...全文
487 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
leo_chenji 2018-07-23
  • 打赏
  • 举报
回复
自己解决了~~
  • 打赏
  • 举报
回复
严格来说,BOOL应该翻译为LongBool,C++的bool对应Pascal的boolean,另外,addr参数也应该加上const修饰

chenjun_0312 2018-07-19
  • 打赏
  • 举报
回复
你的函数就要重写:
function NetSet(addr:PAnsiChar; port:integer):Boolean; stdcall; external 'lib.dll';
  • 打赏
  • 举报
回复
D2009+用PAnsiChar
leo_chenji 2018-07-17
  • 打赏
  • 举报
回复
我也试过 IPAddr := PAnsiChar(AnsiString(Trim(Edit1.Text)));

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧