问题标签 [atlcom]
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.
c++ - 如何从 BSTR 转换为 DATE
似乎没有工作。任何想法将不胜感激。谢谢。
visual-c++ - 如何将 COM 指针从一个进程传递到另一个进程?
我有一个指向进程 1 中的 COM 对象的接口指针。我想从另一个进程访问同一个对象。我怎样才能达到这个目的?我相信由于地址空间不同,直接传递指针是行不通的。我知道它涉及编组/代理/存根的东西。但我不知道细节。
有人可以提供一些有关要遵循的步骤和要调用的功能的详细说明吗?非常感谢。我不是 COM 对象本身的设计者。我只是在使用它。
c++ - 如何生成 64 位 COM 代理
我有一个 32 位 COM 服务器(及其源代码) 源代码生成服务器和一个 32 位代理存根。(MIDL 编译器生成代理存根代码。)
我也想做一个 64 位代理,以便 64 位程序可以与我的 32 位 COM 服务器通信。
如何将 32 位代理转换为与 32 位进程对话的 64 位代理?我猜只是用 /D:_M_AMD64 重新编译是不够的。
winapi - 如何使用 ATL 创建匿名 IDispatch 函数?
有没有一种简单的方法可以创建一个从 IDispatch 派生的类,并且可以像这样传递给 API(这是 C++ ):
我知道如何创建一个 C++ 对象来处理具有值为 0 的 dispid 的调用,但是手动实现所有 IDispatch 总是有点痛苦。我想知道 ATL 是否有一些标准的方法,因为它相当普遍。
visual-c++ - ATL:无法从 COM 接口中删除方法 - 总是像魔术一样重新出现
环境:VS2008,C++ ATL COM,64Bit,Windows 7
我正在尝试从较旧的 COM 接口中删除一个方法。我修改了 *.idl,修改了相关的 *.h 和 *.cpp 实现文件,并将其从主项目的 .h 文件中删除。我可以在整个项目中搜索旧方法名称 - 不显示并且编译/链接很好。但是,如果我随后使用对象浏览器查看已编译的 DLL - dang 方法仍然存在!如果我在 .NET 项目中“引用”DLL - 显示该方法。如果 .NET 代码尝试使用该方法 - 它会出现内存异常(这是有道理的)。我一辈子都想不出如何修改 IDL、删除方法代码并让生成的编译 DLL 正确。
该方法到底隐藏在哪里,是否有其他方法可以从现有的 ATL 生成的 COM 接口中删除方法?我难住了!谢谢!
visual-c++ - VS 2008 atlcom.h ClassesAllowedInStream 未定义(无法转换参数)
我正在尝试在 VC++2008 中构建一个项目,它给出了以下错误:
任何人都可以帮忙吗?
c - 关于 SafeArrayPutElement
仅供参考,我是 COM\ATL 和 unicode 的初学者
我SafeArrayPutElement(safearray*,LONG,void*)
在我的代码中使用,问题是......
在这里,当我将第三个参数设为L"ItWorks"
ie时,该函数工作正常
但如果我使用
这个功能失败了E_OUTOFMEMORY
这里我需要的是,我有一个char*
变量中的字符串,我需要如何将它用作上述函数的第三个参数。任何人都可以在这方面帮助我。
TIA
纳文
windows - 如何从 Windows 服务使用 ATl COM
使用 VS2008 向导,我创建了一个服务(目前除了启动和停止之外什么都不做)
我希望使用(进程外)COM 对象
如果我添加一个#import“object.tlb”,那么重新编译会给出
错误 C2812:/clr:pure 和 /clr:safë 不支持 #import
更改属性以使用 /clr(不是纯的或安全的),允许编译,但服务安装失败,并显示“Ätempt to load an unverifiable executable with fixups”
任何建议表示赞赏
彼得
c++ - 从工作线程关闭计时器句柄
提出问题的最好方法是先举一个例子:
这就是我在 C++ 中创建计时器的方式:
一旦触发了以下回调(TsSampleStarvationTimeBomb_Static),我会尝试杀死该特定线程内的队列句柄和计时器句柄。
我的问题是:它有效吗?我在 MSDN 上阅读了以下删除函数可能会返回 i/o 错误,这不应该让我太担心。一旦回调线程被签名,它们的终止将自动执行。
我对吗?谢谢!
c++ - ATL COM 向 excel 添加功能
我正在尝试使用 c++ 类构建 ATL COM,并通过自动化将其添加到 excel 中。我找到了一些指南,但我有很多问题,一个是我的 dll 没有在自动化中进行比较,如果我尝试添加它,excel 表示存在关于不包含服务器或没有权限的问题。有人可以给我指导吗?我正在使用 Visual Studio 2012。谢谢。