我有一个 native C++ DLL,我想导入一个 C# DLL 并使用它的一些功能(例如连接到数据库)。
现在我读到可以将 DLL 转换为 TLB COM 文件,我已经做到了,没问题。我的问题在于 C++。要调用该 TLB 文件,我需要设置 CLR 支持。我使用 themida 来帮助保护我所有的 DLL 以及 PEC。它们不支持 .net DLL,当我启用 CLR 时,程序将其识别为 .net DLL。
是否可以在不启用 CLR 的情况下从 native C++ DLL 中调用 .net DLL 中的 c# 函数?
最佳答案
在我看来,最好的方法是创建一个 C++/CLI 库,您可以使用它在各层之间进行通信。
此第 3 方库将在启用/clr 的情况下进行编译。
然后您可以使用头文件定义到适当的 c++ 函数包装器来调用 C# 函数。
C++/CLI 可以帮助您按照自己的方式管理调用,并让您按照自己的方式设计类型转换。
关于c# - 从 C++ 调用 C# dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9752029/