连接 COM 与 .NET 的桥梁(2)COM 服务器的 P/Invoke 方式
2006-07-22 22:57:52 来源:WEB开发网using namespace System::Runtime::InteropServices;
如果想使用回调接口或连接点,看清本节的标题啦,根本就没有接口,怎么做啊?呵呵。
//定义一个委托
__delegate bool CallBack(int hwnd, int lParam);
[DllImport("user32")]
extern "C" int EnumWindows(CallBack* x, int y); //参数CallBack从函数指针变成了委托,其实它们大同小异
//回调函数,在调试窗口显式窗口句柄
bool Report(int hwnd, int lParam) {
System::Diagnostics::Trace::WriteLine(hwnd.ToString(),"Window handle is:");
return true;
};
//使用
//实例化一个委托myCallBack
CallBack* myCallBack = new CallBack(this, &EnumReport::Report);
EnumWindows(myCallBack, 0); //将函数指针(实例化的委托)传给COM服务器,COM服务器会自动调用它返回结果
好啦,P/Invoke 差不多能干的就这些啦,下面我罗列了一些有用的表格。几个常用的 Win32 API DLL
可用的属性,通常使用 DllImportAttribute( [DllImport(...)] ) 来设置值
本节大多内容可以在MSDN2003以上版本的“使用非托管 DLL 函数”中找到。“个性”化封送处理(仅COM服务器-->.net客户端)请参见“用平台调用封送数据”,平台调用即P/Invoke。
- ››连接各种数据库的URL和DRIVER
- ››连接上192.168.1.1没账号输入框
- ››COM 组件多层聚合嵌套原理
- ››Netpas加速 让非电信宽带用户流畅上网
- ››net中fckediter的图片上传时候点击\浏览服务器\出...
- ››COM对象与连接点机制及其MFC程序实现
- ››Netmsg局域网聊天程序
- ››NetAirus指控苹果iPhone侵犯其专利
- ››comScore 统计显示 Android 市场份额继续高歌猛进...
- ››ComScore:谷歌 Android 美国市场份额增至9%
- ››Netflix 在线影视播放程序将登陆 iPhone
- ››连接池:深入 J2EE 的连接合用
更多精彩
赞助商链接