NET中怎么调用COM组件?
2个回答
展开全部
.NET在设计之初就考虑到了如何方便的利用现有的各种技术资源,这也是微软的一贯作风,.NET的强大之处也可见一斑。.NET提供了大量的类库来方便的实现同COM的相互操作,其中很重要的一个名称空间就是:System.Runtime.InteropServices。通过这个名称空间的名字我们也可以从字面上看出,“互操作服务”。System.Runtime.InteropServices这个名称空间提供了一系列的类来对COM对象进行操作。
下面的例子中,我们来调用一下系统自带的Win32函数MessageBoxA,这个函数位于系统的COM组件user32.dll当中,我们调用的代码如下:
using System;
using System.Runtime.InteropServices;
class Test{[DllImport( "user32.dll ")]
public static extern int MessageBoxA(inthWnd,string strMsg,string strCaption,intnType);
public static void Main(){int myMsg;
myMsg=MessageBoxA(0, "Hello! ", "test ",0);}}切换到MS-DOS命令行下面,运行:
C:\ csc Test.cs
编译完毕我们的C#应用程序之后,直接运行就可以看到对话框了!
需要注意的是,在调用COM组件之前,我们需要在.NET程序中引用名称空间:System.Runtime.InteropServices。因为我们需要使用这个名称空间所提供的一个方法:DllImport。
你需要做的是:
1.做一个COM+的.NET封装(可以直接在VS.NET中引用COM组件,也可以使用Regsvcs.exe命令自己完成)
2.在项目中引用上面产生的dll最好可以帖出你的代码,这样大家判断的才准确!
下面的例子中,我们来调用一下系统自带的Win32函数MessageBoxA,这个函数位于系统的COM组件user32.dll当中,我们调用的代码如下:
using System;
using System.Runtime.InteropServices;
class Test{[DllImport( "user32.dll ")]
public static extern int MessageBoxA(inthWnd,string strMsg,string strCaption,intnType);
public static void Main(){int myMsg;
myMsg=MessageBoxA(0, "Hello! ", "test ",0);}}切换到MS-DOS命令行下面,运行:
C:\ csc Test.cs
编译完毕我们的C#应用程序之后,直接运行就可以看到对话框了!
需要注意的是,在调用COM组件之前,我们需要在.NET程序中引用名称空间:System.Runtime.InteropServices。因为我们需要使用这个名称空间所提供的一个方法:DllImport。
你需要做的是:
1.做一个COM+的.NET封装(可以直接在VS.NET中引用COM组件,也可以使用Regsvcs.exe命令自己完成)
2.在项目中引用上面产生的dll最好可以帖出你的代码,这样大家判断的才准确!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询