托管 inproc com 服务器上的 /clr 选项导致 .net 客户端崩溃

发布于 2024-11-17 20:17:54 字数 560 浏览 4 评论 0原文

我在 MSVS 2010 中实现了 inproc com-server (dll)。

客户端非常简单:

static void Main()
{
    var t = Type.GetTypeFromCLSID(clsid);
    dynamic o = Activator.CreateInstance(t);
    o.CallMe();
}

CallMe 不执行任何操作。为空,返回S_OK;

客户端因异常崩溃(vshost32.exe 终止)并且消息框“想要将崩溃详细信息发送给 Microsoft?”。此时我无法调试崩溃的进程。

我注意到,仅当“\clr”选项应用于 com-server 时才会发生此异常(因为它在内部使用一些 .net 类,但客户端不调用这些方法)

我想我必须检查 Com- 上的一些额外项目标志服务器项目?

这里我能错过什么?

临时解决方案

我启动了用于处理图像的 .Net 代码,并将其替换为本机开源 C++ 库。之后我可以删除 /clr 选项。

I have inproc com-server (dll) implemented within MSVS 2010.

Client is pretty simple:

static void Main()
{
    var t = Type.GetTypeFromCLSID(clsid);
    dynamic o = Activator.CreateInstance(t);
    o.CallMe();
}

CallMe does nothing. It's empty and returns S_OK;

Client crashes with exception (vshost32.exe terminated) and than messagebox "would like to send crash detail to Microsoft?". I can't debug the crashed process at this point.

I noticed that this exception occurs only if "\clr" option is applied to com-server (as it uses some .net classes inside but client doesn't call these methods)

I guess I have to check some exta project flags on Com-Server project?

What can I miss here?

Temporary solution

I kicked off .Net code I used to work with images and replaced it with native opensource C++ library. After that I could remove /clr option.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文