草庐IT

Com_show_warnings

全部标签

c++ - CreateFile 返回错误 INVALID_HANDLE_VALUE(对于 COM 端口),GetLastError 返回 "can' t 找到指定的文件”

我正在打开一个端口与设备通信并控制设备,但是CreateFile()函数返回INVALID_HANDLE_VALUE。GetLastError()返回2,这意味着它找不到指定的文件。我的代码如下所示:wsprintf(szPort,"COM%d",nPort);m_hIDComDev=CreateFile(szPort,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);if(m_hIDComDev==INVALID_HANDLE_VALUE){

c++ - COM 注册失败,错误代码为 0xC0000005

我正在处理一个包含多个C++COMDll的遗留项目。每次基于调试配置构建解决方案时,构建过程都会为每个COM项目提供错误:Error10errorMSB3073:Thecommand"regsvr32/s/c"D:\*****removedintentionally****_d.dll"echoregsvr32exec.time>".\Debug\regsvr32.trg"echoServerregistrationdone!:VCEnd"exitedwithcode-1073741819.我最近加入了这个项目,所以当我询问它时,我被告知每个人都忽略这些错误,因为解决方案在第二次构建时

c++ - 使用 tlb 文件的 COM 自动化

将我视为Windows环境和COM编程的新手。我必须自动化应用程序(CANoe)访问。CANoe将自己公开为COM服务器并提供CANoe.h、CANoe_i.c和CANoe.tlb文件。任何人都可以指定如何编写C++客户端,以访问应用程序的对象和功能。另外,请说明如何从C++访问tlb文件中的代码。 最佳答案 VisualStudio有很多内置支持,可以将类型库导入C++项目并使用这样定义的对象。例如,您可以使用#import指令:#import"CANoe.tlb"这将导入类型库,并将其转换为头文件和实现文件-它还会导致实现文件与

c++ - 如何在 C++ 中实现多个 COM 接口(interface)?

我正在努力理解thisexamplecode关于浏览器帮助对象。在内部,作者实现了一个公开多个接口(interface)(IObjectWithSite、IDispatch)的类。他的QueryInterface函数执行以下操作:if(riid==IID_IUnknown)*ppv=static_cast(this);elseif(riid==IID_IObjectWithSite)*ppv=static_cast(this);elseif(riid==IID_IDispatch)*ppv=static_cast(this);我了解到,从C的角度来看,接口(interface)指针只是

c# - 如何在 dot net 中使用免注册 COM dll

在我的一个项目中,我有一个使用C++DLL的C#应用程序。目前在客户端PC上,我们正在注册表中的COM组件中注册C++DLLS,以便我们在C#中使用它们。我在NET上了解到,Microsoft提供了一个RegFree解决方案,链接为http://msdn.microsoft.com/en-us/library/ms973913.aspx但是看完之后我并没有得到太多线索,因为我的应用程序架构如下所示不同我有2个C++dll让我们说CPForms.dll和Rules.dll。Rule.dll包含在CPForms.dll中我有1个C#dll假设使用CPForms.DLL的ConsumeFor

c++ - 使用 'g++' 结果为 "warning: will never be executed"

我继承了一个C++项目。我在RHELbuild5.5与GCC4.1.2通过makefile。该项目很大(数百个文件),总的来说代码还不错。然而,在编译过程中,我经常收到一个GCC警告,上面写着(prefix"/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2"):/bits/allocator.h:Inconstructor‘std::allocator::allocator()[with_Tp=char]’:/bits/allocator.h:97:warning:willneverbeexecuted

.net - COM 互操作 : indexed property signature issues

我正在开发一个项目,该项目是对一个相当大的经典ASP项目的.NET扩展,使用了大量C++COM对象,这些对象一直存在于我们的代码库中。不幸的是,C++端有很多hack-ish代码,我担心我没有足够的经验来解决我遇到的问题。简而言之,我可以实例化有问题的COM对象,VisualStudio告诉我应该能够调用它的“方法”(在引号中,因为它们实际上作为参数化属性公开)。但是,我尝试调用的任何方法都会给我错误“索引属性‘CoreAspLib.IComUser.LoginUser’具有必须提供的非可选参数。”问题是,我使用的参数与经典ASP世界中使用的参数完全相同,甚至属性的IntelliSen

c++ - 为什么编译器在我定义了 _CRT_SECURE_NO_WARNINGS 之后仍然警告我不安全的 strtok?

我正在使用适用于Windows桌面的VisualStudioExpress2012。我总是出错ErrorC4996:'strtok':Thisfunctionorvariablemaybeunsafe.Considerusingstrtok_sinstead.Todisabledeprecation,use_CRT_SECURE_NO_WARNINGS.Seeonlinehelpfordetails.当我尝试构建以下内容时:#include"stdafx.h"#define_CRT_SECURE_NO_WARNINGS#include#includeusingnamespacestd;

c++ - GCC 选项 : warning on non-void functions without a return statement

如果存在具有非空返回值但在其定义中不包含return语句的函数,是否有生成错误/警告的GCC/g++选项?例如:intadd(inta,intb){a+b;} 最佳答案 -Wreturn-type.它由-Wall(您应该始终与-Werror-Wextra一起运行)启用。 关于c++-GCC选项:warningonnon-voidfunctionswithoutareturnstatement,我们在StackOverflow上找到一个类似的问题: https:

c++ - g++ 表示 : warning: statement has no effect for shift bits operators

我正在实现alkhwarizmi算法。没错,但我的g++编译器不喜欢移位运算符:>>和当我编译它时,我得到这个输出:>g++-Wall-std=c++0x-o"Al-khwarizmialgorithm.o""Al-khwarizmialgorithm.cpp"(indirectory:/home/akronix/workspace/Algorithms)>Al-khwarizmialgorithm.cpp:Infunction‘intalkhwarizmi(int,int)’:Al-khwarizmialgorithm.cpp:31:9:warning:statementhasnoe