0
A
回答
3
您需要使用Interop來調用非託管代碼。
using System.Runtime.InteropServices; // DllImport
public class Win32 {
[DllImport("User32.Dll")]
public static extern void SetWindowText(int h, String s);
}
這裏是一篇文章,詳細討論主題(也代碼來源)。
0
到互操作的替代方法是使用寫CLR擴展一個C++ DLL充當包裝到傳統的C++ DLL。這給你一個處理異常類型的機會,例如自定義結構或類,如果Marshaling不起作用。 (根據MSDN,你可以擴展Marshaling的支持(http://msdn.microsoft.com/en-us/library/bb531313.aspx),但我沒有親自嘗試過,取決於你在做什麼,這可能是很多工作)。
例如,如果您要訪問導出類的DLL,您可以擁有一個包裝器DLL,它擁有C++類的實例並定義映射到C++類的.NET類。例如,下面是來自我們用它來製作可我們的老C++ dll的一個.NET中的C++/CLR DLL的代碼段:
// This is the constructor for the CLR (managed) object
FileInf::FileInf()
{
// Create the C++ (unmanaged) object
m_pFileInf = gcnew DILib::FileInf();
}
// This is a managed interface which replicates the old
// unmanaged functionality
bool FileInf::IsDirectory()
{
return m_pFileInf->IsDirectory();
}
我會說,如果互操作的作品,然後堅持下去,但我我不確定這是否是解決每個C++/.NET接口問題的最佳方法,並且這是一種替代方案。
相關問題
- 1. 如何將C++結構從dll傳輸到c#程序?
- 2. 如何將C/C++ dll導入到.NET應用程序
- 3. c#dll綁定到不同的版本
- 4. 如何使用C DLL C#程序
- 5. 將DLL鏈接到C++程序中QTCreator
- 6. 將C-C重新綁定到C-c
- 7. 導入DLL到C++程序
- 8. C++ DLL導入到C#應用程序
- 9. 在C中使用.NET CF DLL for WinCE
- 10. 如何將語言綁定到C庫
- 11. EntryPointNotFoundException當在C#中綁定C++ dll時
- 12. 如何將C,C++庫添加到我的j2ee應用程序
- 13. 如何保護我的WinCE&WinMobile程序?
- 14. 如何將我在Qt中創建的DLL導入到C#應用程序中
- 15. 我在WinCE中得到system.missingMethodException而 - C#
- 16. 將C#綁定到XAML
- 17. 將JSON綁定到Model C#
- 18. 將XElement綁定到BindingSource c#
- 19. 如果我在tmux中將C-b的鍵綁定到c-a,我該如何將光標移動到行首?
- 20. 如何讓C++程序查找DLL?
- 21. C#應用程序到C + + dll回到C#應用程序通過回調
- 22. 後期綁定C++ DLL到C# - 功能總是返回true
- 23. 用於WinCE應用程序的Hello World(C和C++) - Visual Studio 2008
- 24. 在C程序中的C++ dll
- 25. C#後期綁定卸載DLL的
- 26. 如何使用Windows應用程序將數據綁定到C#中的SyncFusion GridControl?
- 27. 如何將C/C++結構綁定到Ruby?
- 28. 程序集綁定重定向dll版本的程序
- 29. 如何將DLL引用添加到ASP.NET C#Web應用程序(該DLL是底層C庫的包裝)
- 30. DeleteFile,C++,WinCE