转载:VC知识库
http://www.vckbase.com/document/viewdoc/?id=1622
连接 COM 与.NET 的桥梁(二) 一、COM 服务器 --> COM 客户端 二、COM 服务器 --> .net 客户端 在没有公开接口(或者根本就没有)的情况下
这种情况用到的操作就是P/Invoke。我们至少要知道如下二个内容:
//1.先写好要用到的命名空间如果传递的值是数组、结构或者类,就没这么简单了,需要自定义封装(即Marshal,进行自定义类型转换) //对于数组,只需定义一下封送方法即可,就不写入供下载的示例代码了类的传递方法没什么好说的,自然是和结构的传递方法相同。但有一点要注意,传递类时通常要有至少1级间接寻址,即指针(和上例中的Rect一样)。 /*如果想使用回调函数,那就更麻烦了,需要用到委托/事件机制来接收消息。 using namespace System::Runtime::InteropServices;如果想使用回调接口或连接点,看清本节的标题啦,根本就没有接口,怎么做啊?呵呵。 好啦,P/Invoke 差不多能干的就这些啦,下面我罗列了一些有用的表格。 几个常用的 Win32 API DLL
可用的属性,通常使用 DllImportAttribute( [DllImport(...)] ) 来设置值
本节大多内容可以在MSDN2003以上版本的“使用非托管 DLL 函数”中找到。“个性”化封送处理(仅COM服务器-->.net客户端)请参见“用平台调用封送数据”,平台调用即P/Invoke。 本文转自peterzb博客园博客,原文链接:http://www.cnblogs.com/peterzb/archive/2009/07/29/1534222.html,如需转载请自行联系原作者。 |