[英]How to use c# Dll in vc++?
我使用命令行(csc)創建了一個dll。 假設dll包含Add(int,int)方法。 現在我想在vc ++中使用add函數?
這該怎么做?
對你的幫助表示感謝。
這就是我在做的事情。
vcproj; 對於這個項目,我有右鍵單擊和鏈接器部分添加其他依賴項。添加dll所在的路徑。
main.cpp中
using namespace Test
void main()
{
demo d;
d.add(5,5);
}
錯誤命名空間測試不存在。
怎么解決這個?
我需要在非托管代碼中使用該DLL
從MSDN論壇從非托管C ++調用C# :
你想要做的只是編譯你想要加載C#code / clr的文件,然后使用C ++ / CLI調用。 您的應用程序的其余部分將保持原生狀態,而您編譯/ clr的那些cpp文件將混合使用本機和CLR。 您應該能夠使用C ++ / CLI語法調用C#庫。
一旦在文件的cl.exe命令行上拋出/ clr,就可以在該文件中調用所需的任何托管代碼,無論它是用VB.net,C#還是C ++ / CLI編寫的。 這是迄今為止你想做的最簡單的方法(從你原生的C ++應用程序中調用C#代碼),雖然它確實有其警告和限制。 總的來說,“它只是工作”。 而且,它比p / invokes更快。
這在很大程度上取決於您正在構建的C ++應用程序的類型。 如果要構建C ++ / CLI程序集,則需要確保項目具有對C#DLL的引用。 一旦完成,您應該能夠按照書面形式鍵入代碼,假設您具有Demo的定義,就像這樣。
namespace Test {
public class demo {
public void add(int left, int right) {
...
}
}
}
如果要構建正常的,非托管的C ++項目,則必須使用COM interop來訪問程序集。 這涉及使C#項目中的演示類型COMVisible並將其注冊到COM互操作。 之后,您可以像任何其他COM組件一樣訪問它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.