Questions tagged «com»

组件对象模型(COM)是Microsoft的一种组件技术,具有远程处理,语言独立性和基于接口的编程的功能。有关COM串行端口的问题,应改用[serial-port]标记。


4
如何处理AccessViolationException
我正在从.net应用程序中使用COM对象(MODI)。我正在调用的方法将引发System.AccessViolationException,它会被Visual Studio拦截。奇怪的是,我将调用包裹在一个try捕获中,该捕获具有用于AccessViolationException,COMException和其他所有内容的处理程序,但是当Visual Studio(2010)拦截AccessViolationException时,调试器会中断方法调用(doc.OCR),如果我单步执行,它将继续到下一行而不是进入catch块。此外,如果我在Visual Studio之外运行此程序,则应用程序将崩溃。如何处理在COM对象中引发的异常? MODI.Document doc = new MODI.Document(); try { doc.Create(sFileName); try { doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, false, false); sText = doc.Images[0].Layout.Text; } catch (System.AccessViolationException ex) { //MODI seems to get access violations for some reason, but is still able to return the OCR text. sText = doc.Images[0].Layout.Text; } catch (System.Runtime.InteropServices.COMException ex) …
183 c#  .net  exception  com  modi 

4
C#编译器如何检测COM类型?
编辑:我已经将结果写为博客文章。 C#编译器在某种程度上神奇地对待COM类型。例如,此语句看起来很正常... Word.Application app = new Word.Application(); ...直到您意识到这Application是一个界面。在接口上调用构造函数?ik!实际上,这会转换为的调用Type.GetTypeFromCLSID(),另一个是的调用Activator.CreateInstance。 此外,在C#4中,您可以使用非引用参数作为ref参数,并且编译器仅添加一个局部变量以通过引用传递,并丢弃结果: // FileName parameter is *really* a ref parameter app.ActiveDocument.SaveAs(FileName: "test.doc"); (是的,缺少许多参数。可选参数不是很好吗?:) 我正在尝试调查编译器的行为,但未能伪造第一部分。我可以毫无问题地完成第二部分: using System; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; [ComImport, GuidAttribute("00012345-0000-0000-0000-000000000011")] public interface Dummy { void Foo(ref int x); } class Test { static void Main() { Dummy dummy = null; dummy.Foo(10); …


13
Microsoft.Office.Core参考丢失
使用codeproject中提供的示例,我正在努力找出在哪里可以找到对Microsoft.Office.Core库的引用。 我收到错误消息“找不到引用的组件'Microsoft.Office.Core'。” 我在此系统上仅安装了Office 2007企业版和Outlook 2003。这可能是这个原因吗?否则,我应该引用哪个特定的dll?

2
简而言之,什么是COM(组件对象模型)?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 7年前关闭。 改善这个问题 看来COM对象是受OS控制的通用对象。对象遵循严格的界面,并允许您查询对象以确定信息。这是COM对象吗?
89 c++  com 

5
生成清单文件以用于免注册的COM
我有一些使用清单文件的应用程序(某些本机应用程序,.NET),以便可以完全隔离地部署它们,而无需任何全局COM注册。例如,对dbgrid32.ocx com服务器的依赖关系在myapp.exe.manifest文件中的声明如下,该文件与myapp.exe位于同一文件夹中: <?xml version="1.0" encoding="utf-8" standalone="yes"?> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyIdentity type="win32" name="myapp.exe" version="1.2.3.4" /> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="dbgrid32.ocx" version="5.1.81.4" /> </dependentAssembly> </dependency> </assembly> dbgrid32.ocx和它自己的dbgrid32.ocx.manifest文件一起部署到同一文件夹: <?xml version="1.0" encoding="utf-8" standalone="yes"?> <assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyIdentity type="win32" name="dbgrid32.ocx" version="5.1.81.4" /> <file name="dbgrid32.ocx"> <typelib tlbid="{00028C01-0000-0000-0000-000000000046}" version="1.0" helpdir=""/> <comClass progid="MSDBGrid.DBGrid" clsid="{00028C00-0000-0000-0000-000000000046}" description="DBGrid Control" /> </file> …

5
Excel互操作:_Worksheet还是Worksheet?
我目前正在写有关动态类型的文章,并举例说明Excel互操作。我以前几乎没有做过Office互操作,它显示了。C#4的MSDN Office Interop教程使用该_Worksheet界面,但也有一个Worksheet界面。我不知道有什么区别。 在我荒唐的简单演示应用程序(如下所示)中,任何一个都可以正常工作-但是,如果最佳实践决定了一个或另一个,我宁愿适当地使用它。 using System; using System.Linq; using Excel = Microsoft.Office.Interop.Excel; class DynamicExcel { static void Main() { var app = new Excel.Application { Visible = true }; app.Workbooks.Add(); // Can use Excel._Worksheet instead here. Which is better? Excel.Worksheet workSheet = app.ActiveSheet; Excel.Range start = workSheet.Cells[1, 1]; Excel.Range end …
76 c#  excel  com  interop 

9
是否存在用于Windows / C#开发的可嵌入Webkit组件?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 上个月关闭。 改善这个问题 我已经看到了一些包装了Gecko渲染引擎的COM控件(GeckoFX以及Mozilla附带的控件-mozctlx.dll)。.NET Winform应用程序中是否包含Webkit的包装?
73 .net  com  webkit  gecko 


4
BSTR到std :: string(std :: wstring),反之亦然
在C ++中使用COM时,字符串通常是BSTR数据类型。有人可以使用BSTR包装纸CComBSTR或MS的包装纸CString。但是因为我不能在MinGW编译器中使用ATL或MFC,是否有标准代码片段可以转换BSTR为std::string(或std::wstring),反之亦然? 是否还有一些非MS包装BSTR类似于CComBSTR? 更新资料 感谢所有以任何方式帮助我的人!仅仅因为没有人解决过BSTR和之间的转换问题std::string,所以我想在此提供一些实现方法的线索。 以下是我用来分别转换BSTR为std::string和的函数:std::stringBSTR std::string ConvertBSTRToMBS(BSTR bstr) { int wslen = ::SysStringLen(bstr); return ConvertWCSToMBS((wchar_t*)bstr, wslen); } std::string ConvertWCSToMBS(const wchar_t* pstr, long wslen) { int len = ::WideCharToMultiByte(CP_ACP, 0, pstr, wslen, NULL, 0, NULL, NULL); std::string dblstr(len, '\0'); len = ::WideCharToMultiByte(CP_ACP, 0 /* no flags */, pstr, wslen /* …
70 c++  string  com 
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.