c# - 从 C++ 调用 C# dll

标签 c# c++ dll clr typelib

我有一个 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/

相关文章:

c# - SharpDevelop 或 Express 版本

c++ - 熵和并行随机数生成器播种

c++ - 在数组中使用 const char * 读取顺序文件

c# - 如何在 .NET DLL 中嵌入 SQLite 数据库,然后从 C# 中使用它?

c# - 显示 MessageBox 取消 SupressKeyPress=true

c# - 在 .NET Core 中使用反射

c# - 在 C# 中哪种对象初始化风格更合适?

c++ - QThread:使用 GUI 反馈阻塞进行并行执行?

c# - Easyhook:如何从使用 LoadLibrary 加载的 DLL 中 Hook 函数

c# - 如何在VS创建的exe中嵌入引用?