Coinitialize没有被称为

时间:2015-05-18 10:47:47

标签: c# com

我正在从C#应用程序调用COM DLL。 DLL是应用程序的SDK。从应用程序本身调用它可以正常工作,所以我很高兴它安装好了。我试图从C#控制台应用程序调用它,当我尝试创建DLL中定义的对象时,我收到以下错误:

  

System.Runtime.InteropServices.COMException:CoInitialize还没有   调用。 (HRESULT异常:0x800401F0(CO_E_NOTINITIALIZED))

如何从C#调用CoInitialize,我是否应该这样做?从我读过的内容来看,这应该是针对C#应用程序自动完成的。我正在运行的代码来自供应商的示例文件,因此可能应该是有效的。

请注意,供应商不再可用,因此明显的第一步不是一个选项!我真的只是在寻找关于为什么COM DLL在从.Net语言调用时会引发此错误的一般性建议。

1 个答案:

答案 0 :(得分:0)

这是MSDN explanation,它是什么以及如何解决它。基本上,由于某些原因,{(1}}未在.NET入口点调用。要修复它,请使用CoInitialize属性标记Windows窗体入口点,如下所示:

STAThread
相关问题