草庐IT

c++ - 如何在 Visual Studio 中使用 C++ shlwapi 库?

我想做一个简单的程序来按扩展名对文件进行分类,但是在尝试编译时出现错误SeverityCodeDescriptionProjectFileLineErrorLNK2019unresolvedexternalsymbol__imp__PathFileExistsW@4referencedinfunction"void__cdeclclassifyFiles(void)"(?classifyFiles@@YAXXZ)我的代码是调用PathFileExists的地方是这样的:voidclassifyFiles(){for(inti=0;i我用谷歌搜索了一下,似乎包含Shlwapi.hhead

c++ - MinGW 可以毫不费力地复制大多数 unix 系统调用吗?

背景:我正在移植一个专门为unix系统用C++开发的大型项目,以便与Windows兼容,从而为最终的Windows分发让路。我在Windows开发方面没有太多经验,但我想在高级开发人员进入并接管之前,尽我所能,把事情做好。问题:一段时间以来,我一直在查找软件中使用的所有unix/posix调用的Windows版本,大部分来自dirent.h、unistd.h,还有一些在sys下,例如sys/stat.h或sys/types.h。尽管修改程序以采用新的Win32API调用约定和返回类型(有时是所有新函数)需要大量工作,但它最终可能会起作用。但我经常看到这种情况出现,事实上MinGW,我猜

C++ 打开一个文件并写入文件的任意位置

我需要打开一个现有文件并写入到该文件的任意位置。同样位于可能大于文件当前大小的位置。每次调用写入操作时,使用“ab”打开文件会将位置指示器设置为文件末尾-这样就不起作用了。用"w+b"或"wb"打开文件会导致文件被多次写入(复制?)。Filesize多次从0开始-这需要很长时间。查看执行以下测试(运行1次)时发生的情况的视频:http://screencast.com/t/Uj5ymikZUYJBOOST_AUTO_TEST_CASE(FileWriteTest_W_PLUS_B){autostarted=chrono::high_resolution_clock::now();FIL

c++ - 如何找出Windows系统配置文件的名称?

我正在编写一个Windows服务,它可以使用系统配置文件名称与数据库一起工作。对于此功能,我有一个PostgresSQLServer。我想在运行服务之前为Windows系统配置文件创建信任身份验证。为此,我将运行一些控制台应用程序,该应用程序会在pg_hba.conf文件中写入身份验证方法等所需信息,并使用系统配置文件名称。顺便说一句,Postgres可以识别其他语言符号(尽管不确定所有这些符号)是非常酷的。问题是如何找到Windows系统配置文件的翻译名称?因为不同语言的每个Windows都有不同的系统配置文件名称:system、система、sistema等

c++ - FormatMessage 为另一种语言

是否可以翻译systemerrorcodes特定语言?我只能通过MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US)至FormatMessage.否则,函数调用将失败并显示15100(资源加载器未能找到MUI文件)。系统错误信息存储在哪里?为什么我无法在不同于系统语言环境的语言环境中加载消息? 最佳答案 基本上,MUI代表多语言用户界面。这些是语言包。在Windows中,默认情况下不会获取它们。相反,他们必须安装以下链接可帮助您进行采购。https://support.microsoft.com/e

c++ - Cygwin + windows 10 错误 "sigfillset was not declared in the scope"

我正在尝试使用Cygwin在Windows上编译代码。当前代码在Linux上编译成功。以下是我在Windows10上编译代码所遵循的步骤。1)我在我的Windows10机器上安装了Cygwin。2)从cygwin的安装包中安装了gcc、g++、boost。3)在环境变量中添加了cygwin路径。当我编译代码时,它会抛出以下错误。usr/include/boost/asio/detail/posix_signal_blocker.hpp:Inconstructor‘boost::asio::detail::posix_signal_blocker::posix_signal_blocke

c++ - Windows COM C++ - 使用删除或释放

我想问一个简单的问题,我有一个Direct2D工厂,当我准备好清理时,我会调用delete还是使用releasemember?我看到一些教程只显式调用delete,所以我很好奇哪个更安全,除非发布成员所做的只是在后台调用delete等。`Graphics::~Graphics(){if(Factory)//Factory->Release();ordeleteFactory;if(Render)//Render->Release();ordeleteRender;} 最佳答案 释放COM接口(interface)的正确方法是在接口(

c++ - _findnext (c++) 连续抛出访问冲突

我对c/c++非常陌生,但发现自己需要从源代码(显然不是我的代码)编译一个非常大的项目。在过去的几天里,我设法解决了许多小问题,但我不太能解决这个问题。有一个MP_DLL_Manager_c类,其方法search_library始终产生访问冲突错误。不幸的是,它被源代码编译的每个应用程序调用,因为它是设置环境所必需的。方法是:boolMP_Dll_Manager_c::search_library(vector*lib_names,constchar*path){struct_finddata_tc_file;longhFile;staticstringfname;stringbuff

c++ windows 将 GetLogicalDrives 的结果传递给 GetVolumeInformation

你好,我使用GetLogicalDrives获取所有驱动器,我想进一步使用它来检测驱动器类型,然后使用GetVolumeInformation检查特定驱动器的状态。但是,我无法在GetVolumeInformation和GetDriveTypes中使用GetLogicalDrives(DWORD)的结果,因为它们排除了LPCWSTR。我如何转换GetLogicalDrives的结果并将其传递给GetVolumeInformation和GetDriveTypes?TCHARmyDrives[]=L"A";DWORDmyDrivesBitMask=GetLogicalDrives();WC

c++ - 在 C++ 中获取所有打开窗口的列表并存储它们

我目前正在尝试获取所有打开的窗口的列表并将它们存储在一个vector中。我一直在查看代码,以至于解决方案可能非常简单,但如果没有全局变量(我想避免),我似乎无法完成它。代码如下:#include"stdafx.h"#include"json.h"#includeusingnamespacestd;vectorvec;BOOLCALLBACKspeichereFenster(HWNDhwnd,LPARAMsubstring){constDWORDTITLE_SIZE=1024;TCHARwindowTitle[TITLE_SIZE];GetWindowText(hwnd,windowTi