delphi的dll接口函数function NetInit(mhandle:THandle,msg:Longword):integer;stdcall在vb里该怎么写啊
我写成:Public Declare Function NetInit Lib "NetClient.dll" (ByVal hMem As Long, ByRef msg11 As Long) As Long
都是不行啊.求前辈们帮忙了

解决方案 »

  1.   

    VB里面有没有加stdcall,这样采样正确初始化和回收栈。
      

  2.   

    必须将DELPHI编写的DLL标准化,才能在"任何语言"中调用即可
      

  3.   

    function NetInit(mhandle:Longword;msg:Longword):Longword;stdcallPublic Declare Function NetInit Lib "NetClient.dll" (ByVal hMem As Long, ByVal msg As Long) As Long
      

  4.   

    //mhandle:接收消息的窗口句柄
    //msg:消息值
    //Msg.WParam的值:
    // $0001;      //网络错误消息
    // $0002;      //网络连接成功
    // $0003;      //网络连接断开
    // $0004;      //网络网络关闭function NetInit(mhandle:THandle;msg:Longword):integer;stdcall;这是完整的,msg对应的是返回参数,在vb里应该是:byref吧,况且就按byval也是不对,Longword是32位吧?
      

  5.   

    //mhandle:接收消息的窗口句柄
    //msg:消息值
    //Msg.WParam的值:
    // $0001; //网络错误消息
    // $0002; //网络连接成功
    // $0003; //网络连接断开
    // $0004; //网络网络关闭function NetInit(mhandle:THandle;msg:Longword):integer;stdcall;这是完整的,msg对应的是返回参数,在vb里应该是:byref吧,况且就按byval也是不对,Longword是32位吧?Public Declare Function NetInit Lib "NetClient.dll" (ByVal hMem As Long, ByRef msg As Long) As Long调用时:
    dim j as long 
    dim  msg as long
    j = NetInit(Me.hWnd, msg)j总是返回-1  调用不成功 ,要返回0就可以了
    把哪个bytef改成byval也是不行,不知道问题出在哪里?
      

  6.   

    就是结构标准化>>>>>>>>>>>>>>>>>.
      

  7.   

    delphi编写动态库时,传出参数要用指针。