[英]Is there a way to call an unmanaged (not COM) dll from C# application?
有沒有辦法在我的C#應用程序中使用(引用)用非托管C ++(不是COM庫)編寫的DLL?
當我嘗試從Visual Studio中引用它時,出現“不是COM對象”錯誤消息。
也許有某種translator \\ router可以修改我的DLL參考? 我不知道COM和COM互操作的工作原理,因為我開始編程時對我來說已經不需要了。
謝謝。
您需要使用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);
請參閱MSDN上的“使用非托管DLL函數 ”主題:
http://msdn.microsoft.com/zh-CN/library/26thfadc.aspx
無需添加任何COM代理,.NET可以使用[DllImport]屬性直接使用DLL。 您還可以通過指定其他屬性來完全控制.NET和非托管DLL之間的編組。
喬已經回答了這個問題,所以我要繼續解決這個問題-為節省時間,而不必深入研究和破壞函數簽名,P / Invoke具有相當完整的Win32簽名庫,以Wiki的形式提供和一個Visual Studio插件!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.