草庐IT

windows - UrlUnescape() 和 unicode 字符

我正在尝试在C++上编写程序,该程序将解码包含一些URL编码的unicode字符的URL编码字符串。#include#include#include#pragmacomment(lib,"Shlwapi.lib")int_tmain(intargc,_TCHAR*argv[]){std::wstringtest=L"bla+%D0%B1%D0%BB%D0%BE%D1%84+%E6%97%A5%E6%9C%AC%E8%AA%9E";PWSTRurlencodedStr=const_cast(test.c_str());WCHARdecodedStr[1025];DWORDsize=102

c++ - 相对目录 ZwCreateFile

我必须为我的大学项目实现跨View文件完整性检查器。为此,我该如何在内核模式下列出目录的文件?? 最佳答案 您的起点是ZwCreateFile-具有诸如“FILE_LIST_DIRECTORY”之类的选项。然后您将使用ZwQueryDirectoryFile获取有关该目录中文件的信息。确保确定您不会忘记ZwClose打开某些东西之后-在用户模式应用程序中它并不是那么重要,它在使用后再次关闭。但是内核不知道驱动程序何时停止使用文件(或者,就此而言,如果其他驱动程序已获得该文件句柄,并且将在某个时候使用它),所以即使您的驱动程序已卸载,

C++ Windows : LRESULT CALLBACK and WNDPROC

我有一个类:classSomeClass{public:voidInit();private:LRESULTCALLBACKWndProc(HWNDwnd,UINTmsg,WPARAMwparam,LPARAMlparam);};此外,在另一个文件中我有一个函数:voidMakeWindow(WNDPROCwnd_proc,DWORDstyle,HICONlg_icon,...);第一个参数应该将LRESULTCALLBACK函数作为输入。在某处我也有Init函数的定义:voidSomeClass::Init(){MakeWindow(this->WndProc,WM_POPUP,NU

c# - 在 Windows 中枚举特定类型的文件

是否有一种native(WindowsAPI)方法来列出特定类型的所有文件(例如视频文件),最好使用内置索引(Windows搜索使用的索引)?澄清一下,我知道我可以使用基本的FSAPI递归列出所有文件并按扩展名过滤。我想要一种使用Windows搜索索引的更快的方法。编程语言无关紧要。如果您知道可能的解决方案,请给我一个任何语言的示例。谢谢 最佳答案 我发现本教程最有用,因为它解释了如何获取WindowsSearchAPI所需的DLL。http://www.codeproject.com/Articles/21142/How-to-U

c++ - 如何获取PE文件签名偏移量?

我正在尝试解析PE文件,将其加载到内存中并将WinNT结构指针设置为适当的地址。但是,我无法对PE\0\0签名进行愚蠢的检查,因为我与DOSheader的偏移量有误(一个字节太多)。因此,当我检查IMAGE_NT_HEADERS.Signature时,我收到从“E”开始的4个字节。#defineSHOW_VAR(x)std::cout(m_image.get());//--m_DOSHeader->e_lfanew;(m_image.get()+m_DOSHeader->e_lfanew);//DEBUGSHOW_HEX(m_DOSHeader->e_lfanew);for(inti=

c++ - 使用 Windows API 和 C++ 进行 2D(或 3D)图形编程?

我即将开始我的大学类(class)单元项目。我希望用C++制作有点像小行星的复古2D游戏。我可以使用SFML之类的东西来做到这一点,这看起来肯定是合乎逻辑的事情。但是我不能使用SFML,因为这些库在Windows上默认不可用。要求是我的C++代码必须复制并粘贴到任何WindowsPC(已安装VisualStudio),然后从VisualStudio编译/运行。我以前从未使用过WindowsAPI,但我觉得我可以使用它打开一个窗口并在窗口中绘制一些二维图形。我对么?基本上这就是我需要做的所有事情:打开一个窗口,然后在上面画一些线。这不是“你能帮我做作业吗”类型的问题。如果这是我需要的工具

c++ - 如何判断哪个值触发了 RegNotifyChangeKeyValue?

我正在使用RegNotifyChangeKeyValue用于跟踪对我的注册表项和C++示例的更改的API,类似于该MSDN页面底部给出的示例。我将此API设置为:RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"Software\\Company\\Product",0,KEY_NOTIFY,&hKey);RegNotifyChangeKeyValue(hKey,FALSE,REG_NOTIFY_CHANGE_LAST_SET,hEvent,TRUE);所以,比如说,当这个API作为参数的事件发出信号时(这意味着对Software\Company\Product键的更

c - SetupDiGetDeviceRegistryProperty : "The data area passed to a system call is too small" error

我有一个使用SetupAPI在WindowsXP上枚举USB设备的代码:HDEVINFOhDevInfo=SetupDiGetClassDevs(&_DEVINTERFACE_USB_DEVICE,0,0,DIGCF_DEVICEINTERFACE|DIGCF_PRESENT);for(DWORDi=0;;++i){SP_DEVINFO_DATAdevInfo;devInfo.cbSize=sizeof(SP_DEVINFO_DATA);BOOLsucc=SetupDiEnumDeviceInfo(hDevInfo,i,&devInfo);if(GetLastError()==ERRO

c# - 如何确定当前的 Windows 定时器分辨率?

这个问题在这里已经有了答案:HowtogetthecurrentWindowssystem-widetimerresolution[closed](4个答案)关闭8年前。这可能很明显,但我无法找到/谷歌获取计时器分辨率的当前系统值的正确方法,程序可以通过timeBeginPeriod(n)/timeEndPeriod(n)设置该值。我想知道当前的分辨率是多少...Windows7默认值似乎是15.6毫秒,但其他应用程序或机器供应商可能更改了设置。有一些报告值的工具,但我需要在应用程序中读取值。感谢您提供任何快速提示或链接。C#会是一个加号,但我知道如何使用P/Invoke.编辑:多亏了

windows - Win - 你能一步创建一个隐藏文件夹吗?

据我所知,创建隐藏文件夹的方法是:创建目录(文件夹名称);SetFileAttributes(文件夹名称,FILE_ATTRIBUTE_HIDDEN);这样做会导致目录暂时存在,而不是隐藏的。云软件和备份等其他程序可能会错误地将其视为非隐藏...并对其进行处理。是否可以在单个API调用中实现相同的目的?一个原子步骤?好像应该可以吧!?? 最佳答案 您可以使用CreateDirectoryEx为了这。Createsanewdirectorywiththeattributesofaspecifiedtemplatedirectory.I