启用 COM 接口封送处理需要什么?

2023-12-02

我有一个没有类型库的 32 位 ATL COM 组件。它为一个给定的类提供了一个类工厂,该类实现了多个接口。

当我将它用作进程内服务器时,一切正常 - 客户端调用 CoCreateInstance(),实例化对象,并且 QueryInterface() 检索指向所请求接口的指针。但是,当我将组件放入 COM+ 中时,我无法再实例化该类 - CoCreateInstance() 现在返回 E_NOINTERFACE。

我认为问题在于 COM+ 由于缺少类型库而无法执行封送处理 - 它不知道如何执行此操作。我是否需要生成并注册类型库来解决此问题,还是有其他方法?


类型库是支持编组的一种方式,代理/存根 DLL(从 IDL 生成)是另一种方式。然而,在这两种情况下,您首先都需要 IDL。

如果 Microsoft 没有为此接口提供 typelib/proxy DLL 或 IDL,那么很可能是有原因的:也许该接口使用不可编组的数据结构,需要将函数指针作为方法参数传递或类似的东西?如果是这种情况,就没有办法让这个接口适用于 DCOM。

也许您可以重建 IDL,但很可能这是不可行的。那么您的最后一个后备方案可能是使用自定义或处理程序编组,但这可能不值得付出努力。也就是说,我建议考虑其他不涉及使用并非设计用于 DCOM 的 DCOM 接口的路线。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

启用 COM 接口封送处理需要什么? 的相关文章

  • 如何在非托管 ATL GUI 中嵌入 Windows 窗体?

    我有一个使 COM 可见的 Windows 窗体用户控件 现在我想将该控件嵌入到 ATL 对话框 GUI 中 ATL项目 非托管C 只应获取winform的progID并在运行时动态创建和嵌入它 这可能吗 如果可以 我该怎么做 我不确定 A
  • 本地推送通知到在应用程序内运行 JS 代码的 Win8 Live Tile

    我正在尝试将更新发送到我的应用程序的磁贴 当应用程序运行时 这可以正常工作 例如 当用户单击按钮时 我可以轻松地将磁贴更新通知发送到磁贴 我无法解决的是当应用程序无法运行时如何更新磁贴 我找到的唯一选择是使用以下命令从远程 Web 服务器拉
  • 如何在Windows上模拟socket.socketpair

    标准Python函数套接字 套接字对 https docs python org 3 library socket html socket socketpair不幸的是 它在 Windows 上不可用 从 Python 3 4 1 开始 我
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 如何在批处理文件中回显换行符?

    如何从批处理文件输出中插入换行符 我想做类似的事情 echo hello nworld 这会输出 hello world Use echo hello echo echo world
  • 在哪里可以获得 PHP 5.3+ 的 runkit DLL 扩展?

    这是一个简单的问题 我在哪里可以获得 PHP 5 3 版本的 runkit 扩展 它的手册 http php net manual en book runkit php http php net manual en book runkit
  • 将 CrashDumps 转储到应用程序运行所在的同一文件夹中

    我编写了一个应用程序 我希望对其进行一定程度的自动调试 我想使用 Windows 错误报告将故障转储输出到应用程序运行所在的同一文件夹中 我的想法是 我可以让我的应用程序在它自己的文件夹中查找任何 dmp 文件 然后根据需要上传它们进行分析
  • 退出时的 Powerpoint 问题

    我有一些 C 代码 可以打开 Powerpoint 幻灯片 刷新图表 然后退出 这工作正常 除非用户已经打开了 Powerpoint 幻灯片 在这种情况下 一旦 exe 运行 它将关闭他们现有的会话 丢失他们可能所做的任何更改 所以 问题是
  • Windows 操作系统中 ST_INO(os.stat() 输出)的含义

    谁能告诉我这个值的含义是什么st ino是跑步时os stat 在 Windows 上 Python 3 5 3 在早期的 Python 版本中 它包含虚拟值 但最近发生了变化 我找不到它是如何计算 生成的 我怀疑它因文件系统 NTFS F
  • 在 Win7 登录屏幕上运行应用程序[重复]

    这个问题在这里已经有答案了 我想通过服务在 Windows 7 的登录屏幕上运行应用程序 我对此进行了长期研究并尝试了不同的方法 但不幸的是到目前为止还没有完全成功 我设法在当前登录用户的锁定屏幕上运行该应用程序 起初我认为这就是我基本上试
  • 尽管 if 语句,Visual Studio 仍尝试包含 Linux 标头

    我正在尝试创建一个强大的头文件 无需更改即可在 Windows 和 Linux 上进行编译 为此 我的包含内容中有一个 if 语句 如下所示 if defined WINDOWS include
  • 用于创建计划任务的 VBScript

    我正在尝试创建一个 VBScript 它创建一个批处理文件 然后创建一个计划任务来运行该批处理文件 到目前为止 我尝试过的所有操作都创建了批处理文件 但没有创建计划任务 并且我没有收到任何错误 这是我到目前为止所拥有的 Option Exp
  • Windows 中的蓝牙 AVRCP 命令会触发哪些事件

    可以这么说 只是在做一些高级侦察 对于我的潘多拉客户 Elpis http elpis adamhaile net 我支持全局媒体键 键盘上的 MediaPlayPause MediaNext 等 并且我希望能够支持AVRCP http e
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS
  • 为什么 Windows 命令 DIR 在搜索 *.tif 文件时也会输出 *.tiff 文件?

    我想使用 Windows 命令DIR为了找到唯一TIF文件 即具有扩展名的文件 tif 因此我使用以下小批处理文件 for f delims a IN dir b a d s C wolter testversion input tif d
  • 为什么 Git Bash 无法运行我的可执行文件?

    I am on git for windows https github com git for windows 吉特 巴什 我无法在命令行上运行可执行文件 Pedr Abc 07 MINGW64 c dev ls sqlite3 exe
  • npm package.json bin 无法在 Windows 上运行

    我正在尝试通过 package json 启动我的 cli 工具bin财产 我有以下内容 name mycli bin bin mycli 当我在包路径中打开 cmd 并输入 mycli 时 它表示该命令无法识别 我应该运行 npm 命令吗
  • Windows 上最快的屏幕捕获方法

    我想为Windows平台编写一个截屏程序 但不确定如何捕获屏幕 我知道的唯一方法是使用 GDI 但我很好奇是否还有其他方法可以实现此目的 如果有的话 哪种方法产生的开销最小 速度是首要任务 截屏程序将用于录制游戏镜头 不过 如果这确实缩小了
  • 无法访问127.0.0.1

    我不知道这种情况何时开始发生 但结果是 127 0 0 1 无法在任何地方的任何端口上工作 例如 浏览器显示无法连接 以下是我的研究结果 localhost COMPUTER NAME 和实际 IP 地址都工作正常 我的主机文件中没有什么特

随机推荐

  • 3D 中的 Numpy 网格

    Numpy 的网格网格对于将两个向量转换为坐标网格非常有用 将其扩展到三维空间的最简单方法是什么 因此 给定三个向量 x y 和 z 构造可用作坐标的 3x3D 数组 而不是 2x2D 数组 Numpy 我认为从 1 8 开始 现在支持高于
  • 找到噪声图像边缘的最佳方法

    我有一个噪声图像 如下图所示 假设它是高斯噪声 目前 我使用两个步骤来寻找边缘 使用高斯滤波器 G 平滑图像 根据方程找到边缘 g 1 1 I G 2 其中 G 是高斯滤波器 是控制噪声水平的权重 然而 高斯滤波器是图像边缘丢失的原因 我想
  • 带参数的 Prolog DCG

    我不知道如何使用参数来处理 DCG 假设我们想用 DCG 来代表父母和他们的孩子 那么我们可以说 father gt Peter mother gt Isabel child gt Guido child gt Claudia verb g
  • 从 JTextPane 中的任何偏移量获取样式

    有没有办法得到Style 样式名称或者只是比较是否Style在某个位置JTextPane与我在插入时给文本的样式 因为为了我的目的 我创建了自定义JTextPane StyledDocument and DocumentFilter 所以我
  • 将输入字符串转换为 float/double C++

    所以我知道如何在 C 中执行此操作 但不知道如何在 C 中执行此操作 我正在尝试将给定用户输入解析为双精度 以便稍后进行数学运算 但我是 C 新手 并且遇到了麻烦 帮助 C public static class parse public
  • gmail api 给出 failedPrecondition 错误

    我无法让 gmail api 工作 我正在使用 JWT 进行服务器到服务器身份验证 google api python client 1 4 0 httplib2 0 9 oauth2client 1 4 7 pycrypto 2 6 1
  • 如何设置“discrete_distribution”向量 C++

    我正在尝试模拟马尔可夫链之类的东西 并使用discrete distribution来模拟状态s i到s j的变化 但当然 这是一个矩阵 而不是向量 所以我尝试一下 std vector
  • gcc,内联汇编 - Pushad/popad 丢失?

    有什么方法可以避免复制粘贴pushad popad指令体到我的代码中 因为 gcc 当前标志 Wall m32 抱怨说 asm pushad 错误 没有这样的指令 pushad asm popad 错误 没有这样的指令 popad GCC
  • 如何在自定义 JsonConverter 中使用默认序列化

    我有一个复杂的对象图 我正在使用 Json NET 对其进行序列化 反序列化 一些对象派生自抽象类 因此为了使反序列化正常工作 我需要创建一个自定义JsonConverter 它的唯一作用是在反序列化时选择抽象类的适当具体实现 并允许 Js
  • 如何修复:异步方法的返回类型必须为 void、Task 或 Task [AppName]

    我正在使用 VS Code 并遵循 ASP NET Core EF Core 教程 并承认我不太清楚 async await 和 Task 是如何工作的 嗯 我知道前两个 但不知道第三个 我第一次实现一个存储库 以及与之配套的 Unitof
  • IP地址? - 可可

    我如何制作一个 GUI 程序 只需单击一个按钮即可显示您的 IP 地址 拜托 没有什么困难的解释 我不久前刚刚开始使用 Cocoa Thanks Kevin 您可以通过两种方式获取IP地址 1 如果您想获取当前使用网络上的本地ip地址 可以
  • 为什么顶层显示 2 个窗口?

    我正在尝试制作一个 tkinter 应用程序 当第一个窗口 根 关闭时 它不会关闭所有内容 其他窗口 我尝试过使用Toplevel 它非常适合其他程序中的弹出窗口 但不适用于制作基础级别 from tkinter import top To
  • 尝试使用模板创建类的新实例,出现意外错误

    试图做一个B inary S earch Tree 简称BST 使用模板 当我尝试创建 BST 的新实例时 出现意外错误 我希望解决方案不涉及指针 因为我想将它们保持在最低限度 现在我有 template
  • Spring Boot StackOverFlowError:空

    当我想通过 foreach 循环保存存储库时遇到问题 通过 Foreach 循环用户来并将其保存到另一个实体 用户类 公开课出勤率 Id GeneratedValue strategy GenerationType AUTO private
  • 如何为svg提供响应式设计?

    我是拉斐尔的新手 我在div里面写了svg标签 请参阅此示例http jsfiddle net dhana36 bvs6P 1 使用 CTRL 和 CTRL 你会发现区别 HTML div class outer div
  • 递归思维的算法是什么? (就具体例子而言)

    我就是无法理解递归 我理解所有概念 将解决方案分解为更小的案例 并且在一遍又一遍地阅读它们后我可以理解解决方案 但我始终无法弄清楚如何使用递归来解决问题 有没有系统的方法来提出递归解决方案 有人可以向我解释一下他们尝试解决以下递归问题时的思
  • Android - 动态添加视图到视图中

    我有一个视图布局
  • INNO设置:如何获取主显示器的分辨率?

    我正在尝试使用 INNO 编写安装程序脚本 但我陷入了困境 我需要获取运行安装程序的计算机的屏幕分辨率 并使用该值在桌面上创建一个以该分辨率为一的快捷方式的论点 我知道如何创建快捷方式 但是我不知道如何提取屏幕分辨率以及如何传递该信息 可能
  • 在 CUDA 中,什么是内存合并,它是如何实现的?

    CUDA 全局内存事务中的 合并 是什么 即使读完我的 CUDA 指南后我还是无法理解 怎么做 在CUDA编程指南矩阵示例中 逐行访问矩阵称为 合并 或者逐列访问矩阵称为合并 哪一个是正确的 为什么 此信息可能仅适用于计算能力 1 x 或
  • 启用 COM 接口封送处理需要什么?

    我有一个没有类型库的 32 位 ATL COM 组件 它为一个给定的类提供了一个类工厂 该类实现了多个接口 当我将它用作进程内服务器时 一切正常 客户端调用 CoCreateInstance 实例化对象 并且 QueryInterface