【发布时间】:2011-05-17 12:18:34
【问题描述】:
我有一个用 Visual C++ 编写的 COM DLL。我完全控制该 COM DLL 代码。当然,它可以从托管和非托管应用程序中使用。我想插入一个非常具体的检查,该检查仅应在 COM DLL 被 .NET 应用程序使用时运行。
我的 COM 对象是否有某种编程方式来检测它是从 .NET 应用程序还是从非托管应用程序消耗的?
【问题讨论】:
-
@sharptooth 我不知道这是否可能,但我很想知道你为什么要这样做?
-
@aphoria:我们想插入一个额外的检查,只有在 .NET 应用程序中使用它时才需要,否则会造成伤害。
-
这似乎是一个相当奇怪的问题。也许您可以检查是否加载了 mscoree.dll,但我不确定指标的可靠性。例如,请参阅stackoverflow.com/questions/2080046/…(我喜欢 wj32 的回答)。
-
@sharptooth:您能否更具体地了解该检查?通常,被调用的 COM 对象不应该关心使用什么技术来实现调用者。
-
@Daniel Hilgarth:我想检查的不是那么重要——我只想写一个 if 语句,不知道要检查哪个条件。
标签: .net windows visual-c++ com com-interop