日期:2014-05-17  浏览次数:20789 次

C#代码中要调用C++写的SOCKET通信DLL,遇到了参数传递问题!!
C#代码中要调用C++写的SOCKET通信DLL,遇到了参数传递问题。下面是C++的函数声明
C/C++ code

extern "C" __declspec(dllexport) int TCPS_Connect(SOCKET *puiSkt, struct sockaddr_in *pstSvrAddr, unsigned int uiTmout);


SOCKET类型的指针在C#里对应的数据类型是什么啊?请高手解答,非常感谢!

------解决方案--------------------
具体要看SOCKET *puiSkt这个参数时要传入还是传出,如果是传出,那就定义一个IntPtr全局变量,然后ref IntPtr作为参数来调用它。如果是传入,那就初始化一个.net的Socket,将Socket.Handle赋值给一个IntPtr变量,再以ref IntPtr来调用它。