WEB开发网
开发学院软件开发VC 连接 COM 与 .NET 的桥梁(2)COM 服务器的 P/Invok... 阅读

连接 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 &qu

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。

上一页  1 2 

Tags:连接 COM NET

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接