繁体   English   中英

如何在Visual Studio 2005的C#.NET中的项目中添加对COM组件的引用?

[英]How to add reference to a COM component in my project in C#.NET in Visual Studio 2005?

如何在应用程序中添加对COM DLL的引用?

我试图添加kernel32.dlluser32.dll但这些不支持。

user32.dll等不是COM dll。 例如,您将需要通过[DllImport]使用P / Invoke(来自msdn ):

// Use DllImport to import the Win32 MessageBox function.
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern int MessageBox(IntPtr hWnd, String text,
     String caption, uint type);

您无需添加对kernel32.dll或user32.dll的引用。 这些DLL是Windows的一部分,可以在您的代码中导入而无需添加引用。 您可以使用P / Invoke执行此操作。

例如,要在user32.dll中调用函数SendMessage,可以使用以下C#代码:

[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);

有关这些DLL中方法的更多信息和代码片段,请查看P / Invoke Wiki

编辑:您还可以从MSDN杂志上查阅此文章,以获取有关P / Invoking的更多信息,尤其是作者对样式和最佳实践的一些评论。

要在Visual Studio 2005中引用COM组件,请执行以下操作:

  1. 从项目菜单中选择添加引用1。
  2. 选择“ COM”选项卡2。
  3. 选择您要引用的组件,然后单击“确定”。

可能您实际上想要做的是调用驻留在DLL中的非托管函数。 为此,您需要使用P / Invoke。

Marc Gravell的答案涵盖了此语法,但是您可以通过查看MSDN上Platform Invoke的文档并快速找到特定功能的正确签名来获取更多信息,请访问PInvoke.net。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM