草庐IT

c++ - 如何使用另一个 DLL 为 Qt 制作第三方插件?

免责声明:在Linux上一切正常。在Windows上,我最近从MinGW更改为MSVC2012,因为我无法正确读取MP3(请参阅MaketheWMFplugincompilewithMinGW.)在我的项目中,我有:核心(DLL)另一个使用Core构建的DLL媒体播放器(Qt应用程序,同时使用DLL和加载插件)为了让我的项目跨平台,我还将Windows特定功能(progressbar,thumbnailbuttons)提取到第3方插件中。事实上,我开始编写一个插件管理器,它在运行时加载/卸载插件并且无需重新启动应用程序,它工作正常。但是自从我切换到MSVC之后,我就不能再构建我的插件了

c++ - 是否可以使用调试器调试 UnhandledExceptionFilters?

在MicrosoftWindowsAPI中,您可以使用SetUnhandledExceptionFilter,为未处理的异常设置处理程序。该页面上提到的最大收获是:Ifanexceptionoccursinaprocessthatisnotbeingdebugged,andtheexceptionmakesittotheunhandledexceptionfilter,thatfilterwillcalltheexceptionfilterfunctionspecifiedbythelpTopLevelExceptionFilterparameter.(添加了强调)这基本上意味着,如果

Windows-自动启动 : Application directory seems to be C:/Windows/system32/

当我的应用程序从Windows的自动启动启动时,Qt无法打开它。导致这个的错误是QDir().absoluteFilePath("settings.cnf")返回路径C:/Windows/system32/settings.cnf,即使我的文件位于我的工作目录中。有人知道我必须调用什么方法才能获得正确的路径吗? 最佳答案 使用默认构造函数QDir()默认为当前工作目录,可以是任何内容,具体取决于用户或系统从何处启动应用程序。对于UI应用程序,这是一条通常应该完全忽略的路径。要访问应用程序二进制文件旁边的数据,请使用QCoreAppl

C++ Netbeans 无法编译

我目前正在使用Netbeans7.4、MinGw,并且在我的第一次编译中遇到了问题。它说,每当我尝试编译时mkdir停止响应,然后出现以下调试日志。"/C/MinGW/msys/1.0/bin/make.exe"-fnbproject/Makefile-Debug.mkQMAKE=SUBPROJECTS=.build-confmake.exe[1]:Enteringdirectory`/d/NetBeans/Welcome_1'"/C/MinGW/msys/1.0/bin/make.exe"-fnbproject/Makefile-Debug.mkdist/Debug/MinGW-Wi

c++ - 从 DLL 实例化子类时,vtable 是否正确?

当您在主可执行文件中有一个基类并在DLL中定义了子类(例如,插件)时,当您想要获得一个插件时会发生什么?我正在寻找一篇文章/答案来阐明当你发生什么时加载动态链接库调用DLL的函数返回一个plugin*(它有虚函数)在您的主要可执行代码中使用该插件删除、卸载我正在考虑vtable和其他C++问题。例如,如果您卸载DLL仍然有一些插件正在运行......“代码”会消失吗? 最佳答案 既然你在谈论插件,你一定在做类似LoadLibrary的事情。假设Windows:加载库。您通常会调用LoadLibrary,然后调用GetProcAddr

c++ - 如何在控制台应用程序中使用 GetMessage() 使用 Windows API 识别 C++ 中的键盘输入?

首先是大局:我正在尝试通过Windows7(64位)上的控制台程序同步两个外部设备。也就是说,设备1应该触发设备2。(出于好奇,设备1是NIUSB-6525,我正在使用它的变化检测功能。)我在while循环中使用GetMessage()来等待设备1触发的消息。(因为我没有为该硬件编写软件,所以我无法改变我必须阅读的事实这条消息。)阅读该消息后,它是dispatched.此分派(dispatch)导致回调函数,该函数使用设备2执行测量并将measurementComplete设置为true。一旦回调返回,循环结束。然后我执行清理并退出应用程序。问题是,用户在等待消息时也应该能够中止,例如

C++ ofstream 写入在 Windows 下不起作用。在 Linux 下工作正常

以下代码在Windows和GNUC++、VS10、VS12、IntelC++14.0下不起作用。下面的代码在Linux和GNUC++4.7、4.8、IntelC++14、Open645.0下工作。在内部测试for循环中用DIMEN-256替换DIMEN...有效!?任何的想法?//============================////ReadandWritebinaryfile////usingbuffers////============================//#include#include#include#includeusingnamespacestd;i

c++ - TCP Sockets什么时候需要Keep-alive?

据我所知,在TCP套接字上保持事件状态有助于了解套接字是否刚刚打开以及两个套接字之间的连接是否实际上处于事件状态。所以,我有几个关于Winsocks2中Keepalive用法的问题想咨询一下:当keep-alive选项检测到死套接字时会发生什么?如何在不实际使用的情况下检查连接是活的还是死的send和recv?如果我必须使用send和recv然后功能首先使用keep-alive有什么意义? 最佳答案 Whathappenswhenkeep-aliveoptiondetectsadeadsocket?连接被重置,任何读取或写入都会出现

c++ - 使用 NetBeans 和 MinGW gcc 编译 c++ 程序时无法运行程序 makefile

我正在尝试在Windows7x64上编译一个简单的“Hello”程序:#include#includeusingnamespacestd;intmain(intargc,char**argv){cout编译时在NetBeansIDE中出现错误:CLEANSUCCESSFUL(totaltime:126ms)D:\GDrive\CS\Cpp\NetBeans_Cpp\TNB_cpp\Tut1_10_HelloWorld\Makefile-fnbproject/Makefile-Debug.mkbuild/Debug/MinGW-Windows/main.oCannotrunprogram

c++ - Windows 文件权限作为字符串

给定一个特定的文件系统路径(文件夹或文件,无关紧要),我需要生成一个字符串来反射(reflect)每个主体对该路径的访问权限。我想要的结果与您在Windows的“高级安全设置”对话框的“权限”选项卡中看到的结果非常相似:我最终将以User1:[access]、User2:[access]等格式显示。实现此结果的直接方法是什么?具体来说,必须执行哪些Windows安全API函数,以什么顺序执行? 最佳答案 通过CreateFile打开文件具有FILE_FLAG_BACKUP_SEMANTICS和FILE_GENERIC_READ属性(