草庐IT

Com_show_warnings

全部标签

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编目

c++ - 提神气 : How to report parser warnings?

如何报告解析器警告?类似于报告错误,但解析器不能停止。仅记录警告消息和引起警告的子表达式。示例输入:select*fromtablewhererow>=''&&row'hello'预期输出:Warning:expressionisalwaystrue:row>=''Warning:&&isdeprecated,useAND:row>=''&&row'hello'Warning:isdeprecated,use!=:row'hello' 最佳答案 如果你想继续解析你可以像以前一样注册一个错误处理程序,除了你必须指定accept作为处理

c++ - VS2008 : Disable warnings in included header files outside the project

这可能吗?我不想全局禁用警告,因为我想检查我自己的头文件是否有警告。 最佳答案 您可以禁用有关包含外部头文件的警告:#pragmawarning(push)#pragmawarning(disable:thewarning)//includehere#pragmawarning(pop)如果您需要多次包含标题,您可以使用编译指示创建一个标题并将其包含在内。问了同样的问题here. 关于c++-VS2008:Disablewarningsinincludedheaderfilesoutsi

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++ - 从 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

c++ - "COM-like"框架解决了哪些问题?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我经常看到GObject库与类似COM-Windows的解决方案相比,一般来说,我真的不明白这个框架应该解决什么样的问题,以及采用它们有什么好处。我找到了一些小的答案,比如“它是一个可以轻松地将C库移植到其他语言的包装器”,但是GObject还提供了其他功能,比如信号/槽机制,还有其他涉及的东西,但老实说我不明白关于这件事的大局。你能用通俗易懂的英语解释一

c# - 如何用 C# 或 C++ 读取 COM TypeLib?

我的公司已经创建了几个COM对象,并且他们在.NET中愉快地使用它们。但是现在,我们的客户想换成Java。我认为将JACOB或j-interop(我不确定是哪一个)用于某些任务会很有趣,但生成的代码非常难以管理。所以我想写一个工具,可以读取COM库的TypeLib,然后生成Java包装类来隐藏所有那些难以管理的代码。我是COM领域的新手,不知道如何获取描述COM对象的接口(interface)、方法和参数的信息。我读到了一个叫做TypeLib的东西,但我不知道如何阅读它。我如何从中获取信息? 最佳答案 官方API可在此处获得:Typ

c++ - "warning C4800: ' int' : forcing value to bool 'true' or 'false' "不同场景下的不同行为

我无法理解此警告的以下行为。case1:boolread=(33&3);//NoWarningissuedbyvs2013case2:intb=33;boolread=(b&3);//NowcompilerisgeneratingC4800warning.为什么编译器在情况2中生成警告,而在情况1中不发出任何警告。 最佳答案 C4800是一个性能警告-在运行时将整数强制转换为bool会产生成本。这与逻辑正确性无关。最常见的强制转换(和警告)发生在您与使用整数(VC++中的BOOL)作为bool值的代码交互时。第一个代码段中的编译时强