如何在我的应用程序中添加COM DLL的引用?如何在Visual Studio 2005的C#.NET项目中添加对COM组件的引用?
我已尝试添加kernel32.dll
和user32.dll
但这些不支持..
如何在我的应用程序中添加COM DLL的引用?如何在Visual Studio 2005的C#.NET项目中添加对COM组件的引用?
我已尝试添加kernel32.dll
和user32.dll
但这些不支持..
你不应该需要添加一个引用要么KERNEL32.DLL或USER32.DLL。这些DLL是Windows的一部分,可以在您的代码中导入,而无需添加引用。你使用P/Invoke来做到这一点。
例如,调用函数SendMessage user32.dll中,你可以使用下面的C#代码:
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);
对于在这些DLL方法的详细信息和代码段,检查出P/Invoke wiki。
编辑:您还可以查看this article from the MSDN magazine了解更多关于P/Invoking的信息,特别是作者对风格和最佳实践的评论。
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);
在Visual Studio 2005中引用COM componennt:
这可能是,你实际上想要做的是调用驻留在DLL中的非托管函数。为此,您需要使用P/Invoke。
马克Gravell的回答涵盖了这个语法,但你可以通过查看MSDN上的文档Platform Invoke获得更多的信息,并快速找到特定功能的正确的签名退房PInvoke.net
只是一个小小的挑剔:你为P/Invoke发布的MSDN文档看起来像是Compact Framework,如果这不是ASK的目标,它可能会有一些细微的差异。我意识到这个问题没有具体说明,但是,这可能仍然包含有用的信息。 – 2010-11-05 07:37:52
确实。诚然,我没有检查,并会更新链接,以免造成混淆。感谢您指出了这一点 :) – Crippledsmurf 2010-11-06 07:48:16
你想什么与这些dll实际上做?他们不是COM DLL。 – 2010-11-05 07:15:01