问题标签 [com]
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.
com - 尝试创建 COM 对象时出现“对象变量或未设置块变量”
我有一个 VB6 dll 正在尝试使用以下代码行创建一个 COM 对象:
但是,这会失败并出现错误“对象变量或未设置块变量”。
我可以在 dcomcnfg 中看到 OPSValuer.OPSValue 并且它似乎注册得很好。有没有人对可能导致问题的原因有任何想法?
com - InstallShield:达尔文描述符
我的 InstallShield 安装程序似乎没有正确注册它的几个 COM DLL,即使我已经在安装程序中刷新了它们的 COM 信息。如果我在安装后手动运行 regsvr32,一切都很好。
我注意到安装后,我的组件的注册表中有 InprocServer32 值,这些值包含看起来随机的字符串,我相信这是Darwin 描述符,我知道如果存在,它将覆盖明文路径位置。当我手动运行 regsvr32 时,这些达尔文描述符消失了。我目前的假设是这些描述符中编码的信息不正确,因此当我的程序尝试实例化 COM 组件时,它使用了不正确的 Darwin 描述符信息并且失败了,即使 DLL 的明文路径是正确的。
任何人都可以阐明我如何查看是否是这种情况、解码这些描述符、阻止 InstallShield 生成 Darwin 描述符或以其他方式修复我的安装程序吗?
windows - COM 注册如何在 Windows 中工作
我是一名应用程序打包者,试图了解 COM 注册表项 (SelfReg) 如何与 Windows 中的给定 .dll 相互关联。
ProgID's、AppID's、TypeLibs、Extensions & Verbs 都与 CLSID 相关联,对吧?CLSID 是否总是使用 Prog/App ID,或者您可以只使用文件扩展名类吗?哪些位是可选的?
其中一些似乎“像路由器”,其中有两个接口(内部 - .dll)和外部(扩展等)。
这一切如何适应?(SDK 文档对我来说没有意义)
我问,因为这对于使用 Windows Installer 进行应用程序“修复”至关重要(哪些打包程序都是“大”的,但没有任何细节故障,因为它确实是一个编码器)
---编辑:我是否可以安全地假设对于注册的 COM,它必须全部链接回 CLSID 并且不能成为“死胡同”?动词需要扩展而需要 progid 的...
AppId、TypeLibs 和接口呢?它们如何相互关联?
c# - 由 MS Excel 和 COM 托管的 C# 2 中委托中的异常行为
大家早,
这里有点语言理论问题......我在网上找到了一些参考资料,表明 C# 中的异常处理和委托在某些情况下有一些不同的行为,但我找不到任何关于此事的具体文档。
我们最近在 Microsoft Excel 插件的委托中遇到了一些大问题,导致 MSVC 运行时发生硬崩溃。删除代表解决了这个问题,但我现在很想知道血腥的细节。
作为核心代码的一个简洁示例:
上述结构允许集中形式的错误处理,并且从纯代码的角度来看是简洁明了的。每个公开公开的函数都被声明为委托并通过上述片段执行。
在一个简单的控制台应用程序中,从委托中抛出异常或只是一个普通的意外错误(例如“意外地”在空指针上调用 ToString())按预期工作,并按需要处理错误。
扔进 MS Excel,你会遇到严重的崩溃。单步执行代码将显示错误发生的位置,但在一切都陷入巨大的破坏火球之前,似乎没有发生堆栈展开。
我的假设是,托管 .NET 运行时(以及我们的代码)的 COM 正在做一些不同于正常 .NET 代码执行的事情。这会杀死端点,而 Excel 不知道这一点,而 Excel 又试图通过 COM 访问端点,却发现它不知何故消失了,而 Excel 作为回报也报废了。
这只发生在 Excel+COM+delegates 的组合中,但老实说,我不知道哪个对这种行为影响更大……有什么想法吗?
delphi - 如何使用 Delphi 创建 Outlook 插件?
我正在处理一个数据库项目,我需要创建 Outlook 2007 插件,将当前预览的消息保存到我的数据库中。
有人可以给我一个关于如何在 Delphi 中创建 Outlook 插件以及如何部署它的分步指南吗?
谢谢
.net - 这些为单例创建静态实例的方式有什么区别?
我最近遇到了一个错误,该错误仅在将库构建为发布版本而不是调试版本时才表现出来。该库是一个带有 COM 包装器的 .NET dll,我正在使用 CoCreateInstance 从非托管 c++ 应用程序中的 dll 创建一个类。当我最终追踪到这个错误时,它是由访问一个单例对象引起的。我有这样声明的单例实例:
然后通过以下方式访问它:
这是失败的。将其更改为:
解决了这个问题。任何想法为什么最初的使用不起作用,以及这样做是否有任何缺点?
发布 dll 似乎完全可以从另一个托管应用程序中使用。
vb.net - COM 类工厂错误
我一直在测试使用我的机器作为服务器的应用程序,一切正常,但是当我尝试将其设置为在测试服务器上运行时,我收到此错误:
由于以下错误,检索具有 CLSID {XXXX} 的组件的 COM 类工厂失败:80040154。
有任何想法吗?
谢谢
c++ - COM SDK 参考文档应该用什么语法编写?
我有一个用 C++ 编写的 COM SDK,我想为我的产品创建文档。我知道大多数人可能不会使用 C++ 与这个 COM 组件集成,但很多人会。
哪种方法最适合描述 API,而不会丢失 C++ 开发人员需要知道的细节。
c# - .NET COM 互操作方法签名
您将为以下 COM 方法使用什么互操作签名?我对最后两个参数特别感兴趣,以及是否尝试MarshalAs
与 a一起使用SizeParamIndex
。
文档指出:
pValue [out] 指向包含该值的字节缓冲区的指针。传递 NULL 以检索所需缓冲区的长度。
pcbLength [in, out] 在输入时,指向包含 pValue 长度的变量的指针。在输出时,该变量包含 pValue 中使用的字节数。
php - 如何使用 OLE_COLOR 作为参数从 PHP 调用 COM 函数?
我正在尝试使用 COM 互操作扩展从 PHP 调用 COM 对象。一个函数需要 OLE_COLOR 作为参数?有没有办法从 PHP 传递这种值?
我尝试传递一个简单的整数值但没有成功。