草庐IT

c++ - win7 64 位上的正则表达式构建错误

我在VS2008和Windows764位上遇到了这两个构建错误:errorLNK2019:unresolvedexternalsymbol"__declspec(dllimport)void__cdeclstd::tr1::_Xbad(enumstd::tr1::regex_constants::error_type)"(__imp_?_Xbad@tr1@std@@YAXW4error_type@regex_constants@12@@Z)referencedinfunction"public:staticunsigned__int64__cdeclstd::tr1::_Regex_t

windows - 一个简单的 MASM32 程序的奇怪行为

我想编写类似于以下C++程序的MASM程序:#include#includetypedefUINT(_stdcall*FuncPtr)(LPCSTRlpCmdLine,UINTuCmdShow);intmain(void){HMODULEhDll=LoadLibrary(TEXT("Kernel32.dll"));FuncPtrfunc_addr=reinterpret_cast(GetProcAddress(hDll,"WinExec"));(*func_addr)("C:\\WINDOWS\\system32\\calc.exe",SW_SHOWDEFAULT);FreeLibra

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

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

windows - 使用 Win32::ChangeNotify 并等待操作完成

情况:我正在看一个带有Win32::ChangeNotify的文件夹(这里不关心跨平台)。该文件夹共享到本地网络。将从另一台计算机在此文件夹中创建一个文件。这个过程需要一些时间。问题:当文件仍在写入时,会触发发生某些更改的事件。如何等待写操作完成?我的代码看起来像这样:my$notify=Win32::ChangeNotify->new($watched_folder,0,"LAST_WRITE");if($notify->wait(5000)==1){#1=Theobjectissignalled} 最佳答案 您可能想要在事件之间

c++ - 使用 MinGW 编译的 libx264 - 缺少 __umoddi3、__udivdi3、_fseeko64 和 __chkstk_ms

我愿意在我的Windows项目中使用x264,所以我使用MinGW和gcc从源代码将库构建到静态库中。正确包含库和header,唯一的问题是链接器现在提示,因为__umoddi3、__udivdi3、_fseeko64和__chkstk_ms。看起来这个函数是某些标准库的一部分,但我在Windows中的什么地方可以找到它?谢谢。 最佳答案 我不会在此处复制/粘贴完整答案,但您应该阅读此topicatdoom10.org简而言之,您不能在MSVS中直接使用MinGW编译的.a库(静态或共享)。您需要编译libx264.dll并从.de

c++ - 并非总是可以在 "clean"Windows 8.1 上的 WoW64 上捕获 SEH

我有使用VS2008编译的Win32MFC应用程序。该应用程序具有TreeConrtol。有一个TVN_ITEMCHANGING处理程序,在处理程序中我强行重新绘制已更改的树项。这是带有SEH处理程序和直接WinAPI调用而不是MFC包装器的代码(这不会影响问题):voidCMainDlg::OnTvnItemChangingMainTree(NMHDR*pNMHDR,LRESULT*pResult){NMTVITEMCHANGE*pNMTVItemChange=reinterpret_cast(pNMHDR);HWNDhTreeCtrl=_ctrlTree.GetSafeHwnd()

c# - Windows 中的 64 位和 32 位注册表问题(在 C# 中编程)

我正在尝试从Windows注册表中获取数据到我的软件,但有一件事我遇到了麻烦:如果我的软件在64位系统上运行,注册表路径将为:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\AVASTSoftware\AvastProgramFolder如果我的软件在32位系统上运行,注册表路径将是:HKEY_LOCAL_MACHINE\SOFTWARE\AVASTSoftware\AvastProgramFolder我能做什么?每次都要仔细检查?也许我只会检查第二个选项(没有\Wow6432Node\),当软件在64位上运行时,它会自动将\Wow6432Node\添加

c - Armstrong 数字程序在使用 Codeblocks 和 MinGW(32 位)编译时产生错误结果

我想编写一个程序来判断一个数字是否是阿姆斯壮数字。我为此编写了一个函数,如果数字是armstrong数字则返回1,否则返回0。我在函数中使用了以下代码:intisArmsNum(intx){intm,r=0,d,y;y=x;while(x>0){m=x%10;r=r+pow(m,3);x=x/10;}if(r==y){d=1;}if(r!=y){d=0;}returnd;}现在的问题是,当我尝试检查程序中的153(这是一个armstrong数字)时,程序返回0,并且仅当x=1时才返回1。我在VisualStudio2013中编译了相同的代码,它是工作正常。我决定对Codeblocks(

windows - Cygwin 64 位 C 编译器缓存有趣(并且提前结束)

我们一直在使用CygWin(/usr/bin/x86_64-w64-mingw32-gcc)来生成Windows64位可执行文件,昨天它一直运行良好。今天它以一种奇怪的方式停止工作——它“缓存”标准输出直到程序结束。我写了一个六行的例子那做了同样的事情。由于我们批量使用代码,所以我不会担心,除非我在现在奇怪地缓存的可执行文件上运行测试用例,它会打开输出文件,提前结束,并且不会用数据填充它们。(相同的代码在Linux上运行良好,但这些人使用的是Windows。)我知道这不是华丽的代码,但它证明了我的问题,仅在之后打印数字“12345678910”我按下了键。#includemain(){

php - 如何使用PHP COM调用kernel32.GetTickCount?

我试图通过PHPCOM扩展从KERNEL32.DLL执行GetTickCount但没有成功。我应该使用什么ProgID或类ID来执行GetTickCount?$com=newCOM("?WhatProgID.ID?");$time=$com->GetTickCount();在C++中它看起来像这样:#include#includeintmain(void){std::cout 最佳答案 使用动态包装器:下载dynwrap.dllhttp://techsupt.winbatch.com/techsupt/dynawrapNt.zip(