草庐IT

c++ - CopyFileEx 会出现哪些错误代码?

我正在编写一些需要调用CopyFileEx函数的C++代码。与大多数其他WIN32函数一样,CopyFileEx的文档说:如果函数失败,返回值为零。要获取扩展的错误信息,请调用GetLastError。这一切都很好-但是有人知道我在哪里可以找到特定API函数可能通过GetLastError返回的错误代码列表吗?在这种情况下,我想以不同的方式处理不同的错误情况,但没有此函数的错误代码列表我将简化为生成我想处理的错误情况,只是为了看看产生了什么错误代码或通过从数字0到15999的系统错误代码尝试猜测哪些可能适用!编辑:这里有更多的上下文来帮助解释这个问题,以及为什么我想知道是否有一个可以由

c++ - 为什么这段代码被认为是可重入的?当操作系统中断线程时究竟发生了什么?

这是IBM认为可重入的一段代码:/*reentrantfunction(abettersolution)*/char*strtoupper_r(char*in_str,char*out_str){intindex;for(index=0;in_str[index];index++)out_str[index]=toupper(in_str[index]);out_str[index]=0returnout_str;}对我来说这段代码是不可重入的,因为循环计数器的索引是在本地定义的。如果操作系统在循环内中断此线程,而另一个线程调用此函数,则索引将丢失。我错过了什么?为什么这段代码被认为是

c++ - WM_KEYDOWN 困惑

我试图让我的应用程序在按下CTRL+S时执行某些操作。我只是不确定W和L参数如何为WM_KEYDOWN工作。MSDN有一些关于位域的内容,我不确定。如何检测CTRL和S?谢谢如果除了hWnd之外的另一个控件获得焦点,我该怎么办? 最佳答案 嗯,this是虚拟键码的大列表。CTRL-S将作为2个WM_KEYDOWN消息发送-按下ctrl键时的消息(VK_LCONTROL或VK_RCONTROL)后跟“S”键的0x53。与其处理这两条消息,不如等待“S”按下的按键消息,然后调用GetKeyState使用魔术值VK_CONTROL(否则您

c++ - Directwrite:获取字体的高度

我的目标:我想获取IDWriteTextFormat字体的高度,这样我就可以计算出在特定高度的IDWriteTextLayout中可以容纳多少行文本。我的问题:现在我正在使用这段代码来计算可见的行数:inlineintkmTextCtrl::GetVisLines()const{/*pTextFormatisanIDWriteTextFormatpointer,dpi_yisthedesktop'sverticaldpi,andGetHeight()returnstheheight(inpixels)oftherendertarget.*/floatsize=(pTextFormat-

c++ - 使用多个堆进行内存管理有什么好处吗?

我是系统软件学院的学生。现在我正在为Windows开发一个内存管理器。这是我对malloc()和free()的简单实现:HANDLEheap=HeapCreate(0,0,0);void*hmalloc(size_tsize){returnHeapAlloc(heap,0,size);}voidhfree(void*memory){HeapFree(heap,0,memory);}intmain(){int*ptr1=(int*)hmalloc(100*sizeof(int));int*ptr2=(int*)hmalloc(100*sizeof(int));int*ptr3=(int*

c++ - 在 Win32 控制台应用程序中显示弹出窗口

如何在MicrosoftVisualC++的Win32控制台应用程序中显示弹出窗口?这是为了使用OpenCv构建睡意检测系统。 最佳答案 MessageBox(nullptr,TEXT("Thedriverissleeping!!"),TEXT("Message"),MB_OK);确保包含windows.h。您调用它的线程将阻塞。 关于c++-在Win32控制台应用程序中显示弹出窗口,我们在StackOverflow上找到一个类似的问题: https://st

c++ - 如何检测给定的 PE 文件(exe 或 dll)是 64 位还是 32 位

我需要检测给定的.dll或.exe文件是32位还是64位目前我只有一个解决方案:从指定文件中读取PEheader并从那里获取“机器”字段。(规范:MicrosoftPortableExecutableandCommonObjectFileFormatSpecification(.docx文件)在“3.3.COFF文件头(对象和图像)”部分)此字段最多可包含大约20个值。其中三个是:IMAGE_FILE_MACHINE_I386(==32bit)IMAGE_FILE_MACHINE_IA64(==64bit)IMAGE_FILE_MACHINE_AMD64(==64bit)我的问题:1)

c++ - 光标样式不保持更新

我有一个普通的WindowsGUI应用程序(使用API而不是MFC制作),当我在应用程序上下移动鼠标时,鼠标会更改样式(例如,当您将其移过边框时,它会更改为调整大小箭头等),但有时它会“粘”在那种样式中,这样我就可以四处移动鼠标,它会停留在调整大小的箭头或其他任何地方,即使它离开了窗口边框。如果我将它移到另一个控件上,它会自行修复。这只是一个不便,但它看起来不专业,我想修复它。我怎样才能使它始终保持最新状态? 最佳答案 注册窗口类时设置有效的光标句柄。参见WNDCLASSEX::hCursor。使用LoadCursor加载有效游标。

使用Winapi更改MS访问控制框

在访问表单控制框中,只有5个元素。从左到右:应用程序图标,标题,最小化,最大化和关闭。使用VBA调用访问属性,不可能以添加其他元素的方式更改此控制框。我的目标是使用Win32API调用为此控制框添加问号,该框指向一个网页(URL目的地针对每种表单特定)。我相信这是可能的,因为在访问之外有许多窗口形式,它们在控制框的等效方面具有此问号。这是我的一种形式的裁剪图像,说明我要做什么:这是一个有问号的单词形式的图像,使我相信这是可能的:我和另一个告诉我他认为这是可能的人交谈,但不知道如何。我已经搜寻了互联网,试图找到任何人谈论它,但是什么都没有。有建议吗?看答案问号是通过给窗口来创建的WS_EX_CO

c++ - 加载 DLL 不初始化静态 C++ 类

我有一个在运行时加载的DLL。DLL依赖于内部工作的静态变量(它是一个std::map),这个变量在DLL中定义。当我在加载后调用DLL中的第一个函数时,我从DLL中得到一个SegFault,map从未被初始化。从我从DLL加载中读到的所有内容来看,静态和全局数据初始化甚至应该在调用DLLMain之前发生。为了测试静态初始化,我添加了一个打印出一条消息的静态结构,甚至还设置了一个断点以备不时之需。staticstructa{a(void){puts("Constructing\n");}}statica;在调用DLLMain或函数之前没有消息或中断。这是我的加载代码:dll=LoadL