我用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)