当前位置:  开发笔记 > 编程语言 > 正文

有没有办法从C#应用程序调用非托管(而不是COM)的DLL?

如何解决《有没有办法从C#应用程序调用非托管(而不是COM)的DLL?》经验,为你挑选了2个好方法。

有没有办法在我的C#应用​​程序中使用(引用)在非托管C++(不是COM库)中编写的DLL?

当我尝试从Visual Studio中引用它时,我得到'不是COM对象'错误消息.

也许有某种翻译器\路由器可以合并我的DLL参考?我不知道COM和COM互操作是如何工作的,因为我开始编程时这对我来说已经没有必要了.

谢谢.



1> Joe..:

您需要使用DllImport属性.以下是Win32 PostMessage函数的示例:

[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool PostMessage(IntPtr handle, int message, IntPtr wparam, IntPtr lparam);



2> petr k...:

请参阅MSDN上的"使用非托管DLL函数 "主题:

http://msdn.microsoft.com/en-us/library/26thfadc.aspx

无需添加任何COM代理,.NET可以使用[DllImport]属性直接使用DLL .通过指定其他属性,您还可以完全控制.NET与非托管DLL之间的编组.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有