有这样一个动态链接库 “Reader2600DLL.dll”,其中一个函数原型 :
apiReturn _stdcall Net_ConnectScanner(SOCKET *hSocket,CString nTargetAddress,UINT 
nTargetPort,CString nHostAddress,UINT nHostPort); 
功能: 
与在通信口上连接的读写器建立通信连接,并设置其通信速率。  
入口参数: 
nTargetAddress: 目标地址,如:“192.168.0.1”…… 
nTargetPort:目标通讯端口,如“1969” 
nHostAddress:本地地址,如:“192.168.0.2”…… 
nHostPort:本地通讯端口,如“5000” 
出口参数: 
hSocket :读写器句柄 
现在在C#中,不知道如何将 VC++中的 SOCKET 传入或传出,还请高人指点

解决方案 »

  1.   

    有CString,这个DLL可能是ATL或MFC写的这种动态库好象无法在.Net中调用.
      

  2.   

    c# 中也有 Socket 类
      

  3.   

    使用C#中的 Socket类时,提示: 无法封送 parameter #1:该类型的类型定义没有布局信息。 
      

  4.   

    你把c#工程属性允许不安全代码设成true,然后按指针传过去
      

  5.   

    一般dll中的函数参数,在C#中都需要重新定义,或者用C#中可以代替的数据类型,调用的时候传递C#中的数据类型,Socket类型不知道怎么弄,没弄过....
      

  6.   

    设成可以 允许不安全代码 也无用,关键是类型不匹配。不知道SOCKET类型在C#中如何表示。
      

  7.   

    就是一个IntPtr,但使用这个SOCKET好象只能用WINSOCK2API了
      

  8.   

    自己找到答案了,SOCKET 就是一个 IntPtr,在C#定义为 long 就可以了