草庐IT

c - 当我要求 2.0 时,wglCreateContextAttribsARB() 给了我 4.4

在我的机器上,当我调用wglCreateContextAttribsARB()请求2.0上下文时,我得到了2.1.2。这似乎足以纠正,所以我并不担心。然而,在friend的机器上调用相同的代码会给出4.4上下文。这有意义吗,还是我应该在某处寻找错误?代码如下。GKGLLoader和GKGLContext模块是我自己写的,你看他们的用法大概就能明白他们是怎么工作的,我就不说了发布他们的源文件(除非有人认为它可能相关)。#include#includestaticLRESULTCALLBACKDemoWindowProc(HWNDwin,UINTmsg,WPARAMwparam,LPARA

c++ - GetLastInputInfo 不能正常工作?

我使用GetLastInputInfo来检查鼠标和键盘的最后输入信息。在我的PC系统上工作正常,但是当我在我的笔记本电脑上运行我的程序时它不工作。我看到LASTINPUTINFO每10-15秒更改一次。现在,我正在编写示例程序来检查来自鼠标和键盘的所有输入并保存来自该设备的最后输入时间,但这次如果我空闲则不会更改。如何检查谁在生成事件(设备/程序)并更改结构LASTINPUTINFO? 最佳答案 您可以使用RawInput查看事件是否来自实际的鼠标/键盘本身。如果是,则您的设备驱动程序可能有问题,或者驱动程序正在运行某种内部计时器以

c# - 在窗口内绘图不会重绘和涂抹

我试图在窗口周围绘制一个矩形(在窗口内部,而不是在窗口外部),但绘图有污迹,在某些情况下不会重绘。我将HWNDWndProc子类化(代码当然在HWND进程中运行):classSubClasser:NativeWindow{...protectedoverridevoidWndProc(refMessagem){switch(m.Msg){case0x85://WM_CPAINTcase0xf://WM_PAINT{base.WndProc(refm);Rectangler=GetWndRect(this.Handle);g.DrawRectangle(p,r);Trace.WriteL

c - 更新标题栏 Winapi

我正在更新窗口的标题栏:/*insidethewindowprocedure*/HWNDedit_handle;/*...*/caseWM_COMMAND:{if(LOWORD(wParam)==2){/*2isthecodeforthebutton*/intlen=GetWindowTextLengthW(edit_handle);if(len>0){wchar_tbuf[len+1];GetWindowTextW(edit_handle,buf,len+1);SetWindowTextW(hwnd,buf);}}break;}但是,当我调用SetWindowTextW时,标题栏没有

windows - 当 processHandle = -1 时,这个 OpenProcessToken 做了什么?

我明白这是做什么的,但是如下所示将ProcessHandle设置为-1是什么意思?.text:004011D283EC20subesp,20h.text:004011D58D0424leaeax,[esp+20h+TokenHandle].text:004011D850pusheax;TokenHandle.text:004011D96A28push28h;DesiredAccess.text:004011DB6AFFpush0FFFFFFFFh;ProcessHandle.text:004011DDE896040000callOpenProcessToken

C++:操作文件资源?

是否有任何WinAPI函数或类似的函数来操作文件资源?我想用C++替换shell32.dll和shell32.dll.mui等系统文件的菜单脚本、图标等,但我真的不知道如何开始。:/我知道资源黑客有一个命令行界面,但我真的很想直接用C++来做。(是的,我知道操纵系统文件会带来风险。) 最佳答案 是的,是的。请参阅此列表ResourceFunctions.主要是你在看:BeginUpdateResource开始批量更新资源UpdateResource更新特定资源EndUpdateResource完成更新并将资源保存回文件有关示例,请参

windows - 有没有办法跟踪来自 TComboBox 的滚动条消息?

在我的扩展TComboBox类中,我覆盖了ComboWndProc()过程处理程序,但是我无法从列表的滚动条中检测到CN_VSCROLL和WM_VSCROLL消息(FListHandle).我基本上想使用winapi实现无限滚动。我想,为了做我想做的事,我基本上需要知道滚动条的轨迹条位置,所以当轨迹条触摸下行按钮时,我会向字符串添加更多数据。这个想法很简单,也许很天真,但我可以从那里开始,看看我会遇到什么问题。有可能做这样的事情吗?有没有办法跟踪来自TComboBox的滚动条消息?更重要的是:如果是,如何?如果不是,为什么? 最佳答案

c++ - 如何将文件从回收站还原到特定位置?

我的目标是将特定文件从回收站还原到指定位置,即不还原到其原始位置。我找到了thisarticle还有thisone解释了如何枚举当前在回收站中的文件。但它没有显示如何做我需要的。知道怎么做吗? 最佳答案 您可以通过模拟拖放来完成。使用IShellFolder::GetUIObjectOf()从回收站获取一个IDataObject接口(interface),并为您的目标文件夹获取一个IDropTarget接口(interface)。然后您可以调用IDropTarget::DragEnter(),然后调用IDropTarget::Dro

c++ - WriteFileGather - 写入大文件(大于 4 GB)的方法是什么?

我正在使用windwosxp,我想将数据(每次大约4MB)附加到一个文件中。使用“WriteFileGather”,我一直增加重叠结构的偏移值。由于系统调用是32位的,偏移值(DWORD)不能超过4GB值。代码示例:LARGE_INTEGERsize;if(!GetFileSizeEx(_hFile,&size)){return;}overlapped.Offset=size.QuadPart;使用ftell和fseek对我不起作用。显然,“WriteFileGather”需要分配overlapped.offset值。突破4G限制的方法是什么? 最佳答案

c++ - 为什么在使用 ReadFile() 函数时会发生访问冲突?

这个问题在这里已经有了答案:CrashwhencallingReadFileafterLockFileEx(2个答案)关闭7年前。我一直在尝试从文件中读取数据,并且我正在使用WindowsAPI函数ReadFile()。我使用了以下代码:intmain(){LPDWORDbytesRead=0;HANDLEhFile=CreateFile("TestFile.txt",GENERIC_READ|GENERIC_WRITE,0,0,OPEN_ALWAYS,0,0);charData[600];ReadFile(hFile,Data,10,bytesRead,0);cout当我执行这段代码