我正在从C#应用程序调用COM DLL。 DLL是应用程序的SDK。从应用程序本身调用它可以正常工作,所以我很高兴它安装好了。我试图从C#控制台应用程序调用它,当我尝试创建DLL中定义的对象时,我收到以下错误:
System.Runtime.InteropServices.COMException:CoInitialize还没有 调用。 (HRESULT异常:0x800401F0(CO_E_NOTINITIALIZED))
如何从C#调用CoInitialize,我是否应该这样做?从我读过的内容来看,这应该是针对C#应用程序自动完成的。我正在运行的代码来自供应商的示例文件,因此可能应该是有效的。
请注意,供应商不再可用,因此明显的第一步不是一个选项!我真的只是在寻找关于为什么COM DLL在从.Net语言调用时会引发此错误的一般性建议。
答案 0 :(得分:0)
这是MSDN explanation,它是什么以及如何解决它。基本上,由于某些原因,{(1}}未在.NET入口点调用。要修复它,请使用CoInitialize
属性标记Windows窗体入口点,如下所示:
STAThread