草庐IT

c++ - 我的 Visual C++ Win32 中有一个无法关闭的 MessageBox!到底是怎么回事?

我有一个无法关闭的消息框,我不确定为什么。它是在我的窗口过程中为这样创建的对话框创建的:hwnd=CreateDialog(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_DIALOG1),NULL,WndProc);下面是有问题的WndProc代码。问题出在MessageBox调用上,OK按钮没有任何作用,也没有点击该消息框上的“X”。BOOLCALLBACKWndProc(HWNDhwnd,UINTmsg,WPARAMwParam,LPARAMlParam){staticHBRUSHbgBrush;switch(msg){caseWM_INITD

c++ - 如何在不使用目录的情况下在磁盘上查找文件

我正在编写一个C++应用程序,它将监视以确保磁盘上的某些文件存在。我研究了ReadDirectoryChanges和FindFirstFile/FindNextFile函数以及一个简单的轮询解决方案。我的问题是,如果父目录的名称更改或文件被重命名,我无法判断。我不想查看文件的父目录以进行名称更改。有没有办法在不使用目录的情况下判断磁盘上是否存在文件?有人告诉我这可以使用操作系统本身的内存地址,但我还没有找到任何东西。也许我只是不知道我在找什么?任何帮助将不胜感激。 最佳答案 您可以使用OpenFileById()function打开

c++ - 如何在运行时将编辑样式更改为 ES_NUMBER?

创建编辑控件时,我没有添加ES_NUMBER。后来基于bool标志,我想更改样式并使其成为ES_NUMBER并将其恢复为bool标志的其他值。 最佳答案 documentation有答案。部分摘录:TocreateaneditcontrolusingtheCreateWindoworCreateWindowExfunction,specifytheEDITclass,appropriatewindowstyleconstants,andacombinationofthefollowingeditcontrolstyles.After

c++ - 在 Linux for Windows 上构建应用程序

我是编程界的新手,我很高兴我已经完成了我的第一个程序。它是我在Ubuntu上用QT编写的一个简单的C++游戏。现在我想创建包含所有必要依赖项的可执行文件,这样程序就可以在没有QT和使用的库的情况下运行。过去两天我一直在阅读问题和论坛帖子,但我无法理解这个过程。我知道为了使程序可执行,它必须包含指向.so文件或Windows上的.dll的所有链接,但我不知道如何从.so转换为.dll以及如何将它们包含到我的程序。我确实看了很多帖子,都觉得有点太超前了。我也不清楚整个构建、发布、打包、部署过程,但我还没有找到任何从头开始的合适信息。你能指出我正确的方向吗?谢谢

c++ - 错误 C2011 : 'sockaddr' : 'struct' type redefinition. 请参阅 'sockaddr' 的声明

这个问题在这里已经有了答案:C++RedefinitionHeaderFiles(winsock2.h)(15个答案)关闭6年前。我使用VisualStudio2012并尝试获取静态库UDT开始工作。不幸的是,我无法编译将UDT库链接到自身的项目,我在WindowsSDKheader中收到159个关于类型或宏重新定义的奇怪错误。c:\programfiles\windowskits\8.0\include\shared\ws2def.h(96):warningC4005:'AF_IPX':macroredefinition2>c:\programfiles\windowskits\8.

c++ - 如何使用RegCopyTree

我一直在尝试使用C++注册表函数,并且试图让RegCopyTree正常工作,但每次尝试时,我都会收到类似这样的错误ERROR_FILE_NOT_FOUND或ERROR_ACCESS_DENIED.我以管理员身份运行该程序,所有其他注册表功能都可以正常工作。这是我使用的代码:HKEYdestinationKey;RegCreateKeyEx(getRootKeyFromCode(rootKeyCode),destinationKeyPathNative,0,NULL,0,0,NULL,&destinationKey,NULL);RegCopyTree(INSERT_ROOT_KEY_HE

c++ - 提取共享内存的大小

我正在尝试了解我应该如何提取MapViewOfFile的返回缓冲区大小。我使用以下命令分配共享内存hFileMapping=CreateFileMapping(INVALID_HANDLE_VALUE,nullptr,PAGE_READWRITE,0,dwDataSize,strSharedMemoryName.c_str());使用以下代码片段填充内容:pBuffer=DynamicAPI::MapViewOfFile(hFileMapping,FILE_MAP_WRITE,0,0,dwDataSize);if(nullptr==pBuffer||GetLastError()!=0)

c++ - WndProc调用机制(WinAPI)

我正在尝试了解Windows应用程序的工作原理。有一个WndProc函数,其中发生消息处理。LRESULTCALLBACKWndProc(HWNDhwnd,UINTmsg,WPARAMwParam,LPARAMlParam){switch(msg){caseWM_KEYDOWN:if(wParam==VK_ESCAPE){if(MessageBox(0,L"Areyousure?",L"Exit?",MB_YESNO|MB_ICONQUESTION)==IDYES)//ReleasethewindowsallocatedmemoryDestroyWindow(hwnd);}return

C++ WinAPI - Windows 关闭之前的清理终止进程?

通常,在使用GUI窗口时,您可以捕获WM_CLOSE事件以在应用程序终止之前执行清理任务。但是,如果我的应用程序只是在后台运行并且进程仅在Windows关闭时终止-是否有任何方法可以捕获此事件并在进程终止之前执行一些清理?我知道无法干预任务管理器进程的关闭。但是随着关机,我只注意到有一个shutdown和一个shutdown/F命令。 最佳答案 创建一个message-onlywindow,并处理WM_QUERYENDSESSION和/或WM_ENDSESSION消息。 关于C++Win

c++ - float 大小是否取决于操作系统?

很抱歉,我无法使用Google找到此问题的答案。我不会说英语,也许我没有使用正确的词进行搜索。我记得数据类型的大小取决于架构词的大小(或者我错了)。但是,我不确定大小是否也取决于操作系统。现在我正在使用Windows732位,我不确定当我使用Windows764位时float是否会改变其大小。我使用VisualStudio2012编译我的解决方案,使用Win32项目。如果我将Windows版本从32位更改为64位,大小会发生变化吗?我不是在问float和double之间的区别。我想问的是,如果我将操作系统从Windows732位更改为Windows764位(反之亦然),float在同一