1. 原型:NET_HANDLE net_create(ULONG ip,
                                USHORT port, 
      CMD_CALLEE  cb, 
     ULONG  Mpeg4, 
     BooL  jump_frame, 
     BOOL  network_type)
2. 功能:该函数是SDK的入口,负责初始化SDK以及网络功能。
3. 参数:
a) ip: 本地IP地址。一般指定0,表示默认。
b) port: 本地网络端口。范围4096-65535,一般指定8101。
c) cb:网络消息回调。当主机有消息发来时,cb可以得到消息。他们的类型其实都是HWND―Win32窗口句柄。通知的方式是Win32窗口消息传递(SendMessage或PostMessage)。后面参数解释类似。d) Mpeg4:是否使用MPEG4解码库?TRUE:使用 FALSE:使用H263解码库
e) jump_frame:是否丢弃不完整的帧?TRUE:丢弃 FALSE:不丢弃
f) network_type:TURE:TCP   FALSE:UDP
g) 返回值:NET_HANDLE,网络句柄。delphi中我如下方式:
function net_create(ip: DWORD; port: WORD; cb: HWND;Mpeg4:Bool;jump_frame:Bool;network_type:Bool): longint; stdcall; External 'XXXXX.dll'
报错:
access violation at address XXX in module 'MFC42.DLL',Read of address XX

解决方案 »

  1.   

    CMD_CALLEE  cb
    这个参数在你的函数声明里没看到哈
      

  2.   

    Mpeg4,应该声明成DWORD。不是Bool型
      

  3.   

    Mpeg4声明成dword了试过了还是报同样的错
      

  4.   

    type
      NET_HANDLE = THandle;//这里根据情况定义function net_create(ip: Cardinal; 
         port:Word;  
         cb: CMD_CALLEE;//这个Callback类型要自己写  
         Mpeg4: Cardinal;  
         jump_frame: LongBool;  
         network_type: LongBool) :NET_HANDLE; cdecl{如果没有特别声明,则C当中默认为cdecl规则,而不是stdcall}; External 'XXXXX.dll';
      

  5.   

    XXXX_CALLEE:通知(Notification)接收者,在本SDK中均为HWND类型。一般这是指一个Win32窗口对象。
    我定义成cb :HWND应该没有错
    我按unsigned兄弟的写法改了一下,运行时还是报同样的错误,我快疯了,调用程序如下:function net_create(ip: Cardinal;port:Word;cb: HWND;Mpeg4: Cardinal; jump_frame: LongBool; network_type: LongBool):THandle; cdecl;External 'DisplaySDK.dll';
    implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      ip:Longword ; //IP地址转换
      _h:THandle;
    begin
       ip:=inet_addr('192.168.0.6');
      _h:=net_create(ip,8101,Panel1.Handle,0,true,true);end;
    各位大侠帮我看一下哪里有错误,始终报哪个错