一个DLL文件能否调用一个.NET DLL文件?

6

一个本地的DLL文件能够调用.NET DLL文件吗?

3个回答

4
不,你需要使用托管的C++。

没错。我们所做的是使用托管C++创建一个薄包装器,其中包含标准的extern "C"导出函数,然后在C#中编写真正的代码。 - ConsultUtah

1

不使用COM,您必须编写一个C++/CLI包装器。您的原生代码需要包含包装器的头文件,并使用/clr(公共语言运行时支持)进行编译。

只是出于好奇,为什么不使用COM互操作性?请查看regasm.exe和tlbexp.exe工具。


因为我不熟悉COM,会尽力避免学习它 :) - Drone 605
1
COM也存在着令人头疼的DLL地狱问题,这是由于全局注册造成的。虽然可以进行无需注册的COM操作,但文档往往令人困惑且存在漏洞。https://dev59.com/PXRB5IYBdhLWcg3wc3A0 - Wim Coenen

1

你需要一些东西来让托管世界和非托管世界协同工作。如果你不想使用COM,你可以在C++/CLI中创建包装类。

这里有一篇文章可以帮助你入门:.NET to C++ Bridge


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接