2
A
回答
1
有很少吧,C++/CLI被明確爲支持此方案。只需從CLR節點中選擇一個項目模板即可開始。您必須告訴鏈接器鏈接.lib文件和#include C++/CLI源代碼中的標題。
唯一可以解決的問題是#include頭文件可能包含可能被C++/CLI編譯器誤解的聲明。例如C函數聲明。最好的辦法是向編譯器明確告訴它。像這樣:
#include "stdafx.h"
#pragma managed(push, off)
#include "3rdparty.h"
#pragma managed(pop)
#pragma comment(lib, "3rdparty.lib")
// Rest of your code
該片段中的#pragma註釋告訴鏈接器也鏈接第三方庫的.lib文件。讓您無需在鏈接器的「附加依賴關係」設置中明確執行此操作。
就是這樣。
2
我不知道是否存在這樣的標準,您可以像使用C++應用程序一樣使用C++/CLI應用程序中的C++庫。 我總是試圖做的唯一事情是將第三個庫包裝在Proxy或Facade設計模式後面,以便客戶端始終可以與託管類一起工作。 如果您的C++/CLI應用程序是其他.NET應用程序使用的庫,這一點尤其重要。
例子:
// 3rd party header
class Value{};
// your C++/CLI app
#include <3rdpaty/Value.h>
public ref class ValueWrapper
{
public:
// wrapper interface here
private:
std::scoped_ptr<Value> value_;
};
相關問題
- 1. 結合C和C#。結構的
- 2. Asp.Net結合C#和Angular
- 3. 結合PHP和C++編程
- 4. C#:結合DllImport和繼承?
- 5. 結合c#類和vb.net類
- 6. 結合C#和JavaScript代碼
- 7. 結合Javascript和C#GUI
- 8. 結合在C#
- 9. 合適的方法來結合objective-c和C++嗎?
- 10. C#集合結合項目
- 11. 目標C UIActivityViewController和navigationItem.leftBarButtonItem結合
- 12. 使用Swig結合使用C和TCL
- 13. C#.NET和VB.NET相結合的缺點
- 14. c中的結構和標記聯合
- 15. 把excel和c結合起來#
- 16. C#:結合AddRange()和Lambda表達式
- 17. 結合FORTRAN和C++,鏈接錯誤
- 18. 可能結合C#.net,VB.net和ASP.net?
- 19. 量角器結合SpecFlow,Selenium和C#
- 20. C++ - 結合功能
- 21. 結合XAML與C#
- 22. C#結合條件
- 23. 動態-shallow結合和深結合
- 24. 結合和非結合功能
- 25. 結合.split()和.match()結果
- 26. 混合C和C++
- 27. c和C++混合
- 28. 在C上聲明C結合C#
- 29. C#組合框的結合和第一空值
- 30. 結合查找和有序數據的C++數據結構
由於您不能使用非託管值類型作爲託管類的成員 – stijn
,因此無法編譯您可以始終使用向前值和不透明指針指向值。這個編譯和完美的作品。 – nogard
這是我在幾個月前完成接口連接的過程,它工作正常。 – Max