求调C++ api方法

okyzx 2006-01-19 04:36:56
extern "C" __declspec(dllimport) bool _cdecl InitSocket( LPCTSTR lpszFile = NULL );
以上的C++声明函数,主要完成Socket初始化动作!
我在Delphi中声明如下
function InitSocket(lpszFile :String) :boolean;cdecl; External 'FTKernelAPI.dll';

声明是没问题,但是调用后就出现
10093:Failed to create socket handle,这个错误是我是从 C++代码出错时写入到日志文中得到的
这个函数,我在C++中当API一个的调用都不会出错呀,为什么在Delphi中出错呢,请高手帮忙
或者是我Delphi的声明有错,我试得改成stdcall也不行
也试着用
function InitSocket(lpszFile :LPCTSTR ) :boolean;cdecl; External 'FTKernelAPI.dll';
都不行,不知是那边问题?
...全文
68 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐老猫 2006-01-19
  • 打赏
  • 举报
回复
应该是
function InitSocket(lpszFile: LPCTSTR): BOOL; Cdecl; External 'FTKernelAPI.dll';

windows.pas下如下定义:
BOOL = LongBool;
LPCTSTR = PAnsiChar; { should be PWideChar if UNICODE }
快乐老猫 2006-01-19
  • 打赏
  • 举报
回复
function InitSocket(lpszFile: PAnsiChar): WordBool; Cdecl; External 'FTKernelAPI.dll';


okyzx 2006-01-19
  • 打赏
  • 举报
回复
多谢,我已经试过了,还是不行
是不是要调什么编译属性呢
yrb 2006-01-19
  • 打赏
  • 举报
回复

试试
function InitSocket(lpszFile :PChar = nil) :boolean;cdecl; External 'FTKernelAPI.dll';
yrb 2006-01-19
  • 打赏
  • 举报
回复
参数lpszFile应该是PChar类型。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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