如何检测 .NET 应用程序是否正在使用我的 COM 对象?
我有一个用 Visual C++ 编写的 COM DLL。我完全控制 COM DLL 代码。当然,它可以从托管和非托管应用程序中使用。我想插入一个非常具体的检查,该检查仅应在 .NET 应用程序使用 COM DLL 时运行。
是否有某种编程方法可以让我的 COM 对象检测它是从 .NET 应用程序还是从非托管应用程序使用?
I have a COM DLL written in Visual C++. I fully control that COM DLL code. Of course it can be consumed from both managed and unmanaged applications. I want to insert a very specific check that should only be run when the COM DLL is consumed by a .NET application.
Is there some programmatic way for my COM object to detect whether it is being consumed from a .NET application or from an unmanaged application?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这些“我的环境是什么”的问题总是有相同的答案。您的主机可以毫不费力地确定它是否受到托管,只需向您的界面添加一个属性即可让它告诉您。与替代方案相比,这是一个微不足道的解决方案。这在 COM 中不可能可靠地实现,有很多托管服务器的方法。
These kind of "what's my environment" questions always have the same answer. Your host has no trouble figuring out if it is managed, just add a property to your interface to let it tell you. A trivial solution compared with the alternative. Which is impossible to implement reliably in COM, lots of ways to host a server.
两种可能性:
Two possibilities: