问题标签 [comobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2444 浏览

c# - 访问 Excel 文件时返回的 C# System.__ComObject

我正在尝试通过以下代码访问 Excel 文件:

最后一行 book 变量的内容是System.__ComObject在不同的应用程序代码正在工作并且变量有...Excel.WorkbookClass

所以我想问一下这种奇怪行为的原因可能是什么。我已经尝试使用额外的 Missing.Value 参数调用 Workbooks.Open 但结果是一样的。

0 投票
1 回答
31301 浏览

asp.net - Microsoft.Office.Interop.Excel 不适用于 64 位

我在 MS Visual Web Developer 2008 Express Ed 上开发时遇到了问题。在 Windows7 64 位操作系统上开发 ASP.NET C#。

我正在尝试打开一个 Excel 文档,但它给了我Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))

我确实为所有处理器(任何 CPU、x64、x86)配置了构建,但它不起作用。我在互联网上搜索了答案,但找不到如何处理它。

奇怪的是,当我在 Microsoft Visual C# 2010 Express 上开发时,相同的代码在同一系统上运行!怎么会?后面工作的不是同一个dll吗?

我是否需要更改该 COM dll 才能在 x64 系统上运行?

请帮帮我,我该怎么办?

我的代码是:

0 投票
2 回答
960 浏览

windows - 64 位 Windows/IIS 7.5 的 caprock.dictionary 的替代品

我的公司有一个遗留解决方案,用 Classic ASP/VBScript 编写,它使用应用程序范围内的 caprock.dictionary COM 对象来存储各种数据记录集。

这在 32 位 Windows/IIS 6.0 上运行良好,但据传在 64 位 Windows 上会失败。

除了将此解决方案迁移到 ASP.NET(我们正在这样做)之外,是否有替代 caprock.dictionary COM 对象的替代方法,它可以做同样的事情并在 64 位 Windows 上工作?

0 投票
1 回答
1582 浏览

c# - 使用动态转储 ComObject 的对象?

我正在尝试(没有运气)为我在 Office 类型库中访问的对象实现“对象转储器”。

它一定是可能的,因为 VS 的调试窗口有一个 System.__ComObject 对象的“动态视图”,可以有效地完成我想要的。

有任何想法吗?

0 投票
1 回答
2200 浏览

c# - 如何将 COM 对象类型转换为 Excel.Checkbox 类型

我正在向 excel 添加一个复选框,但在将类型为“System.__ComObject”的 COM 对象转换为接口类型“Microsoft.Office.Interop.Excel.CheckBox”时遇到问题,任何帮助将不胜感激!我正在使用 Visual Studio 2008 和 Office 2007 开发 Web 应用程序。错误发生在这一行:- chkBx = (Microsoft.Office.Interop.Excel.CheckBox)obj;

0 投票
1 回答
541 浏览

c# - 如何在 IIS 上处理 Excel COM 对象

我在 IIS 上有一个 ASP.NET 应用程序。在这个应用程序中,我使用 Excel COM 对象:

我使用这个对象:

并像这样摧毁它们:

因此,它在 Visual Studio 2008 上正常工作。但是!当我仅在 IIS 上启动此应用程序时,Excel 进程无法被破坏!帮助!

0 投票
1 回答
2899 浏览

c# - SaveCopyAs 方法不起作用

(我是英语周,所以首先请原谅我解释不好:D)

我通过我的应用程序打开一个 excel 文件。

我在 Excel 中有一个加载项,在功能区中有一个用于保存的按钮(正是保存按钮执行的保存操作)按钮的 Click 事件代码在这里:

在我的应用程序中,我将一个方法(称为 WorkbookBeforeSave)分配给工作簿的“BeforeSave”事件处理程序,该处理程序将工作簿手动保存在我的自定义目录中。

问题是当我单击原始 Excel 保存按钮“SaveCopyAs”方法正常工作但单击我的自定义保存按钮时“SaveCopyAs”方法不起作用。 (没有抛出异常,所有代码都已编译和调试)

0 投票
1 回答
580 浏览

c# - 在 InnoSetup 中访问 C# COM 对象时出现异常

我正在尝试访问使用 C# 创建和注册的 COM 对象,但没有任何成功。

其中 obj.GetCustomerName() 是公开的 COM 方法。UsingCOM 是命名空间,CUsingCom 是类的名称

谁能指出我在哪里步履蹒跚??

0 投票
1 回答
4872 浏览

c# - MSHTML HTMLHeadElementClass COM 错误

我目前正在使用 MS HTML 将 JavaScript 代码插入网站。

我参考了 Microsoft HTML 对象库并键入了此代码。

我在脚本的最后一行收到错误消息,这是消息。

我对 COM 没有太多经验,将最后一行保留在他的代码中很重要,任何人都可以帮助我理解这意味着什么以及我如何解决它?

0 投票
1 回答
816 浏览

vb6 - VB.NET 调用 COM DLL 并调用另一个 COM DLL 导致错误

我正在 VB.NET 2010 中编写一个 COM DLL(我们称之为 DLL A)。此 DLL 使用预先存在的 DLL (DLL B) 中的函数。当我从 VS2010 中的测试应用程序运行代码时,一切正常。

(测试应用程序)--> (DLL A)--> (DLL B)

现在我在真实的 APP(在 VB6 中)中添加对 DLL A 的引用

(真实应用)--> (DLL A)--> (DLL B)

...我得到这个错误

无法将类型为“System.__ComObject”的 COM 对象转换为接口类型“Object.class”。此操作失败,因为对具有 IID '{GUID}' 的接口的 COM 组件的 QueryInterface 调用由于以下错误而失败:不支持此类接口(HRESULT 异常:0x80004002 (E_NOINTERFACE))。

DLL A 确实被初始化了,但是一旦我调用一个引用 DLL B 的函数,它就会出错。

帮助!