日期:2014-05-19  浏览次数:20743 次

我用C++编写完成端口+重叠IO的dll, 然后在.Net中使用此DLL进行读取和写入,有几个问题请教
我在DLL中,写入了完成端口的框架代码,然后导出标准函数给.Net
.Net   调用   Nativa   Win32   Dll非常简单,

我导出的函数大致为:
1.初始化函数   监听初始化并AcceptEx,启动工作者线程池
2.停止监听
3.向某SOCKET发送数据
4.设置某SOCKET的回调,当数据WSARecv的时候,调用此回调将数据传递给.Net处理


问题:
1.   .Net没有函数的概念,那么当一个操作完成的时候,我怎样才能用回调的方式调用.Net某静态方法呢?

2.   数据类型转换的问题.   我收到的数据都是内存BYTE数据。对于int   long   之类都能找到.Net的数据类型对应。   但对于WCHAR的字符串应该用什么数据类型对应?


------解决方案--------------------
SORRY
2 没看清
WCHAR 用 STRING ,注意参数的编码给是
charset

------解决方案--------------------
SetRecvFun( LPVOID lpFun)
在C#中这样定义:
SetRecvFun(Delegate lpFun)