【问题标题】:Calling C# dll from C++从 C++ 调用 C# dll
【发布时间】:2012-03-17 17:15:19
【问题描述】:

我有一个原生 C++ DLL,我想导入一个 C# DLL 并使用它的一些功能(例如连接到数据库)。

现在我了解到您可以将 DLL 转换为 TLB COM 文件,而且我已经做到了,没有任何问题。我的问题在于 C++。要调用该 TLB 文件,我需要设置 CLR 支持。我使用themida 来帮助保护我所有的DLL 以及PEC。它们不支持 .net DLL,当我启用 CLR 时,程序会将其识别为 .net DLL。

是否可以在不启用 CLR 的情况下从本机 C++ DLL 中调用 .net DLL 中的 c# 函数?

【问题讨论】:

    标签: c# c++ dll clr typelib


    【解决方案1】:

    我认为最好的方法是创建一个 C++/CLI 库,您可以使用它在层之间进行通信。

    此第 3 方库将在启用 /clr 的情况下编译。

    然后,您可以使用适当的 c++ 函数包装器的标头定义来调用 C# 函数。

    C++/CLI 可以帮助您按照您想要的方式管理调用,并让您按照您想要的方式设计类型转换。

    【讨论】:

    • +1。我想说,洋柴的回答不仅是最好的方式,也是唯一合理的方式。我已经这样做了很多次,但没有其他任何工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多