草庐IT

com-interop

全部标签

c++ - 使用 std::unique_ptr 管理 COM 对象

我正在尝试使用智能指针在我的类中保存COM对象,同时避免使用ComPtr。是否可以为此目的使用unique_ptr?我对智能指针很陌生,到目前为止我有点困惑。请考虑以下简化代码:classTexture{private:structComDeleter{operator()(IUnknown*p){p.Release();deletep;}}ID3D11Texture*m_dumbTexture;std::unique_ptrm_smartTexture;public:ID3D11Texture*getDumbTexture()const{returnm_dumbTexture;}ID

c++ - 为什么在 IUserNotificationCallback COM 对象上查询 IMarshall 接口(interface)?

使用Microsoft的IUserNotification2我正在使用IUserNotification2向软件用户显示通知。我使用Microsoft的现有实现,请参见此处。(请注意,我删除了标准header并进行了一些简化)。#include//IUserNotification2interfaceheadervoidNotifyUser(conststd::wstring&title,conststd::wstring&text){if(!SUCCEEDED(CoInitializeEx(nullptr,COINIT_MULTITHREADED)))throwstd::except

已解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常的正确解决方法,亲测有效!!!

已解决com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常的正确解决方法,亲测有效!!!文章目录问题分析报错原因解决思路解决方法识别违反的约束类型审核相关的数据操作调整数据或数据库结构实施数据完整性策略总结在开发涉及数据库操作的应用程序时,com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException异常是我们常遇到的一个问题。这个异常指出了一个重要的问题——违反了数据库的完整性约束。处理此类异常对保持数据的一

c++ - Windows-7/64 位上的免注册 COM 对象

我正在尝试获取Registration-FreeActivationofCOMComponents:AWalkthrough来自Microsoft的示例可在Windows7Professional/64位机器上运行。我已经下载了演示程序MSDNRegFreeCOM.msi.我使用VS2008SP1在我的XP-32开发箱上正确构建和运行它。但是当我将工作的32位演示程序复制到我的Windows7机器时,它失败并出现0x80040154错误。此错误意味着该类未注册。然而,没有明确地向Windows注册这个对象是这个特定com对象的重点,所以请不要告诉我向Windows注册这个对象。有人知道

c++ - 如何枚举实现特定 COM 接口(interface)的所有组件类?

我会尽量简单的描述问题;假设我们有一个定义了多个接口(interface)的com客户端。为了改进我们的com客户端的功能;几个独立的公司开发和部署实现该接口(interface)的com服务器。目标机器可能具有实现相同接口(interface)的com服务器。问题来了;我们的com客户端不知道目标机器上的com服务器,因为它们是独立开发的。但是,我们仍然可以要求独立公司遵循特定的安装程序。问题来了;我们应该使用什么样的技术来找出目标机器上部署的所有兼容的com服务器,然后实例化所需的对象? 最佳答案 据我所知,没有标准的COM编目

Dart 3.3 发布:扩展类型、JavaScript Interop 等

参考链接:https://medium.com/dartlang/dart-3-3-325bf2bf6c13跟随Flutter3.19发布的还有Dart3.3,Dart3.3主要包含扩展类型增强,性能优化和native代码交互推进,例如本次改进的JavaScriptInterop模型就引入了类型安全,所以这一切都为WebAssembly支持铺平了道路。在《Flutter2024路线规划里》,Web平台上未来CanvasKit将成为默认渲染,所以未来Dart在Web上肯定是WasmNative的路线。扩展类型扩展类型是一种编译时抽象,它用不同的纯静态接口来“Wrapper”现有类型,同时它们也是

c++ - 未提供时从 COM+ dll 获取 IDL(用于 TLB)

我有一个.dll,其中包含一些带有特定/自定义接口(interface)的directshow过滤器(COM)。大多数第3方directshow组件包含可用于跨环境通信(C#typelib导入)的嵌入式.tlb文件。我不愿意尝试手动创建c#所需的接口(interface),因为没有提供idl/tlb文件。是否可以从COM.dll生成一个tlb(或者至少是一个idl,我可以通过MIDL编译它)? 最佳答案 是的,可以对IDL(或非常接近它的东西)进行逆向工程/反汇编。您需要做的是给自己一个新的C++控制台项目,它提供默认代码#incl

c++ - 没有弃用功能的 CUDA + OpenGL Interop

我之前已经能够通过以下方式在CUDA中填充纹理以用于OpenGL:创建并初始化GL纹理(gl::GenTextures()等)创建GL像素缓冲区对象向CUDA注册PBO在更新/渲染循环中:cudaGraphicsMapResource()与PBO启动内核以更新PBOcudaGraphicsUnmapResource()来自CUDA的PBO加载GL程序,绑定(bind)纹理,正常渲染重复清洗、漂洗。但是,我想知道PBO是否仍然是从内核编写纹理的最佳方式。我看过类似thisone的文章(updatedforv5here)似乎根本没有使用PBO。我看到了一些对cudaTextureObjec

c++ - 从 VS2012 在 C++ 中使用 ATL 创建 COM

尝试在VisualStudio2012中使用ATL创建简单的COM库。我这样做:NewATLProjectWelcometotheATLProjectWizardNextApplicationSettings-nochange(DLL)NextFinish得到了很多文件:试图了解在何处添加可由COM用户调用的简单函数。我发现只有一个地方可以使用向导添加功能:但我发现在参数选择方面缺少一些东西,比如in、out、retval。我希望在添加新功能后至少IDL文件也会更新,但这并没有发生。从VS2012的VisualC++使用ATL创建简单的COM类的方法是什么?

c++ - 将 COM 事件公开给 VBScript (ATL)

我使用“ATL简单对象”向导用ATL在C++中构建了一个COM服务器DLL。我关注了微软的ATLDLLCOMServer例子。一切正常,除了一件事:我没有在VBScript中接收COM事件。我确实收到了C#中的事件。我在早期基于MFC的实现中使用VBScript处理事件作为ActiveX控件。我的控件是这样定义的:classATL_NO_VTABLECSetACLCOMServer:publicCComObjectRootEx,publicCComCoClass,publicIConnectionPointContainerImpl,publicCProxy_ISetACLCOMSer