【问题标题】:Can a DLL call a .NET DLL?DLL 可以调用 .NET DLL 吗?
【发布时间】:2011-04-14 00:13:37
【问题描述】:

本机 DLL 可以调用 .NET DLL 吗?

【问题讨论】:

    标签: .net interop clr


    【解决方案1】:

    不,您需要使用托管 c++

    【讨论】:

    • 没错。我们要做的是用托管 C++ 中的标准 extern "C" 导出创建一个瘦包装器,然后用 C# 编写真正的代码。
    【解决方案2】:

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

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

    【讨论】:

    • 感谢您的文章。很有帮助。
    【解决方案3】:

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

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

    【讨论】:

    • 因为我对 COM 不熟悉,所以会尽我所能避免学习它 :)
    • COM 也因全局注册而遭受令人讨厌的 DLL 地狱问题。可以进行免注册 COM,但文档令人困惑,并且存在错误 stackoverflow.com/questions/617253/…
    猜你喜欢
    • 2011-03-06
    • 2011-03-29
    • 2012-08-10
    • 2010-09-20
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    相关资源
    最近更新 更多