Questions tagged «com-interop»

30
如何正确清理Excel互操作对象?
我在C#(ApplicationClass)中使用Excel互操作,并将以下代码放在我的finally子句中: while (System.Runtime.InteropServices.Marshal.ReleaseComObject(excelSheet) != 0) { } excelSheet = null; GC.Collect(); GC.WaitForPendingFinalizers(); 尽管这种工作有效,但是Excel.exe即使关闭Excel ,该过程仍在后台进行。仅在我的应用程序手动关闭后才释放它。 我在做什么错,还是有其他方法可以确保正确处理互操作对象?
747 c#  excel  interop  com-interop 

17
由于以下错误,检索具有CLSID {XXXX}的组件的COM类工厂失败:80040154
我使用C#.NET开发了Windows服务以生成PDF报告。要生成PDF文件,我正在使用第三方dll。该应用程序正在我的Windows XP平台上运行。在Windows Server 2008 64位版本中部署服务时,出现此错误: 由于以下错误,检索具有CLSID {46521B1F-0A5B-4871-A4C2-FD5C9276F4C6}的组件的COM类工厂失败,原因为:80040154。 我使用regsvr32命令注册了DLL。我可以在注册表中看到此CLSID。但是问题仍然存在。 可能是什么问题呢?

15
“内存泄漏”的剖析
在.NET透视图中: 什么是内存泄漏? 您如何确定您的应用程序是否泄漏?有什么影响? 如何防止内存泄漏? 如果您的应用程序存在内存泄漏,那么在进程退出或被杀死时它会消失吗?还是即使进程完成后,应用程序中的内存泄漏也会影响系统上的其他进程吗? 通过COM Interop和/或P / Invoke访问的非托管代码又如何呢?

6
类型存在于2个程序集中
我已经从两个不同的第三方COM DLL创建了两个.NET Interop程序集。两个COM DLL都包含一个名为的类型COMMONTYPE。因此,COMMONTYPE现在也通过两个Interop组件公开了。 我有第三个项目需要使用这两个Interop程序集,并且得到了臭名昭著的编译时错误: 该类型同时<ABC>存在于<ASSEMBLY1.dll>和<ASSEMBLY2.dll> 由于COM DLL是由第三方供应商提供的,因此我无法访问源代码,并且正在编写C#控制台应用程序,这意味着我没有可在其中添加debug=false解决方法的web.config文件。我能做什么?
75 c#  com-interop 


2
“注册COM Interop”与“使程序集COM可见”
这两种选择之间的真正区别是什么?我所知道的是: 注册COM Interop 此选项在程序集上执行重排,并在注册表中将所有程序集之类的COM项注册为COM组件(可能不是)将程序集注册为COM组件。此步骤会生成TLB文件吗?还有什么? 有时我在编译项目时看到生成了tlb,但有时却没有,这是为什么? 使装配体COM可见 这对装配体有什么影响?如果我在程序集中具有以下类型,即使我的类型标记为ComVisible,我是否仍需要指定“使程序集COM可见”? [GuidAttribute("02810C22-3FF2-4fc2-A7FD-5E103446DEB0"), ComVisible(true)] public interface IMyInterface { }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.