草庐IT

windows - 我可以从 GetDC(NULL) 中选择一种字体到 DC 中吗?

GetDC(hwnd)和GetDC(NULL)有什么区别?我知道后者获得了整个(虚拟)屏幕的DC,但我不确定这实际上意味着什么。我想根据使用的字体设置初始窗口的大小。我使用CreateFontIndirect创建字体句柄,但在我看来,只有当您将该字体的SelectObject放入DC时,您才能使用GetTextMetrics计算出使用的实际高度,而不是指定的高度。我假设它们可能不一样。我通常会使用GetDC(hwnd)来获取DC并选择其中的字体。但是,考虑到我还没有hwnd,我可以选择一种字体到从GetDC(NULL)返回的DC中吗?编辑:相关。我想这可能没什么区别!GetDC(NUL

c++ - typedef 一个可在 Windows 和 Linux 上使用的 C++ 函数

我在Windows(WIN32API)中有一些庞大的C++代码库,现在我也想将它移植到Linux。但是,更改代码并不是一个好主意,因为对于Linux和Windows,将有两个文件拷贝。相反,我的想法是,拥有一个包含所有WIN32特定声明到Linux声明的typedef的头文件,并适本地包含它。#ifdef__gnu_linux__#include"linuxCPPTypeDef.h"#endiflinuxCPPTypeDef.h将包含typedefunsignedintDWORD;等到这里为止一切都很好。棘手的部分是..我的代码在很多地方使用标准的min函数,但g++不理解它(需要st

c++ - 如何获取 Windows 启动时间?

这个问题在这里已经有了答案:Programmaticallygettingsystembootuptimeinc++(windows)(5个答案)关闭1年前。如何使用某些WinAPI函数在C++中获取Windows启动时间?我目前正在使用命令“systeminfo”,但我正在寻找更合适的解决方案。

c++ - 如果路径包含符号链接(symbolic link),Windows API 获取文件属性?

我使用了_stat64(constchar*path,struct__stat64*buffer);API来获取文件/目录统计信息,但如果输入路径包含符号链接(symboliclink),则此API会失败。如果文件路径包含符号链接(symboliclink),GetFileAttributes()和GetFileAttributesEx()API也会失败。但正如MSDN中所述,如果路径指向一个符号链接(symboliclink),这两个函数返回符号链接(symboliclink)的属性。如果路径指向符号链接(symboliclink),甚至_stat64()也能工作。如果路径包含[no

windows - 适用于 Windows 64 位的 LVITEM

很长一段时间以来,我都尝试使用带有LVIF_TEXT掩码的LVM_GETITEMW消息来获取ListView的文本。我的程序可以在32位架构下运行,但不能在64位架构下运行。我发现问题出在LVITEM结构上。很快,我的问题是哪种结构适合64位以及为什么。我用作LVITEMW结构的结构具有以下字段:('mask',c_uint32),('iItem',c_int32),('iSubItem',c_int32),('state',c_uint32),('stateMask',c_uint32),('pszText',c_uint32),('cchTextMax',c_int32),('iI

c++ - 如果已最小化,如何恢复 winapi 窗口?

我已经尝试了很多函数,例如ShowWindow和IsWindowVisible至少尝试在窗口最小化时给出结果,更不用说恢复它了。无论窗口是否最小化,这些函数都会不断返回false。我也尝试过将GetWindowPlacement与SetWindowPlacement一起使用,但没有成功。我的HWND使用FindWindow(TEXT("Chrome_WidgetWin_1"),NULL);找到Chrome,这是成功的,但我想测试/恢复窗口,如果它被最小化并且这些过去10个小时没有什么可证明的。 最佳答案 Chrome有一个不可见的同

c++ - 用户进程看不到服务创建的全局共享内存

我有一个Windows服务(在系统进程中运行)和一个需要共享配置结构的桌面应用程序。数据源自应用程序,但用户进程没有创建全局内存对象的权限,因此我在服务启动时使用CreateFileMapping()和基于thisanswer的DACL创建了它。.这似乎工作正常:我从CreateFileMapping()得到一个非空句柄并且GetLastError()是0。问题是应用程序看不到对象——OpenFileMapping()返回一个NULL句柄和ERROR_FILE_NOT_FOUND——如果我用WinObj手动浏览全局对象,我也看不到它。是什么让我的对象不可见?SECURITY_ATTRI

c - 我的 SHA256 哈希函数有什么问题?

我正在Windows应用程序中编写此函数,该应用程序生成某些文本的SHA-256哈希值。代码编译并运行良好,但似乎产生了不正确的输出。charGSalt[17]={0};HRESULTSaltHashAndStorePassword(_In_char*PlainTextPassword){HCRYPTPROVCryptProvider=NULL;HCRYPTHASHHashPointer=NULL;charPlainTextPasswordWithSalt[64]={0};strcat_s(PlainTextPasswordWithSalt,PlainTextPassword);str

c++ - 如何在控制台窗口中找到光标的坐标?

我使用以下代码为光标指定了一些坐标:COORDc={7,7};HANDLEh=GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleCursorPosition(h,c);现在我正在屏幕上写一些文本,我想知道光标的当前位置。我发现的唯一函数是使用POINT而不是COORD。所以我写道:VOIDKeyEventProc(KEY_EVENT_RECORDker){POINTposition;GetCursorPos(&position);if(position.y但是POINT没有给出我需要的相同值。我怎样才能转换它?或者获取当前COORD的函数是什么?

windows - GetComputerName WinApi 调用和 %COMPUTERNAME% 环境变量

WinAPI调用GetComputerName和读取%COMPUTERNAME%环境变量是否总是在Windows上返回相同的结果? 最佳答案 不能保证这两个东西是一样的。例如,程序可以更改甚至删除环境变量。程序这样做有点不正常,但在技术上是可行的。 关于windows-GetComputerNameWinApi调用和%COMPUTERNAME%环境变量,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/