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';
都不行,不知是那边问题?

解决方案 »

  1.   


    试试
    function InitSocket(lpszFile :PChar = nil) :boolean;cdecl; External 'FTKernelAPI.dll';
      

  2.   

    function InitSocket(lpszFile: PAnsiChar): WordBool; Cdecl; External 'FTKernelAPI.dll';
      

  3.   

    应该是
    function InitSocket(lpszFile: LPCTSTR): BOOL; Cdecl; External 'FTKernelAPI.dll';windows.pas下如下定义:
      BOOL = LongBool;
      LPCTSTR = PAnsiChar; { should be PWideChar if UNICODE }