托管 inproc com 服务器上的 /clr 选项导致 .net 客户端崩溃
我在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论