用C#呼叫C++DLL時的字串指標引數傳遞問題

iDotNetSpace發表於2008-09-05
下面是C++中的函式原型和呼叫方法  
  CMPP_API   dpl_status_t   cmpp_connect_to_ismg(char   *host,dpl_port_t   port,conn_desc   *conn);  
   
  stat   =   cmpp_connect_to_ismg("211.130.24.51",7800,&conn);//建立與ISMG伺服器的連線  
   
  用C#怎麼呼叫呢?
   示例:
   
  [   DllImport(   "api.dll",   CharSet=CharSet.Ansi)] //   EntryPoint="cmpp_connect_to_ismg",  

  public   static   extern   int   cmpp_connect_to_ismg(   ref   string   host,short   port,[MarshalAs(UnmanagedType.LPStruct)]   ref   conn_desc   conn);

   //@@無符號short//  

   
  呼叫  
   
  string   ipstr="211.138.24.51";  
  stat   =   esp.cmpp_connect_to_ismg(ipstr,7890,ref   conn);//建立與ISMG伺服器的連線

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-442047/,如需轉載,請註明出處,否則將追究法律責任。

相關文章