草庐IT

windows - 在 Windows 中修改帧缓冲区

有没有办法在绘制之前修改帧缓冲区?假设我想在任何桌面应用程序的整个屏幕中将红色值设置为零。1)捕获绘图事件并获取帧缓冲区2)获取每个像素并将R=0设置为RGB值(使用GPU语言以避免GPU->CPU内存传输)3)绘制修改后的帧缓冲区 最佳答案 哈,我找到了你可能正在寻找的东西:直接内核对象操作它是一个WindowsAPI,可以编写这样的过滤器驱动程序,您正在寻找。他们可以授予您对内核内存的完全访问权限并让您修改它。到目前为止,您可以Hook文件系统和位置,因为内核内存本身和较低级别的网络管理,甚至可以使操作系统本身崩溃,我敢打赌您可

python - 可以存储在套接字缓冲区中的最大 UDP 数据包数? (Ubuntu)

客户:importsockets=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)msg=b"X"foriinrange(1500):s.sendto(msg,("",))服务器:importsockets=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.bind(("",>PORT>))counter=0foriinrange(1500):s.recv(1)counter+=1我有两台机器-第一台装有Windows7,第二台装有Ubuntu16.04。现在的问题:如果我尝试从客户端向服务器

windows - 堆栈缓冲区溢出(Windows、C++): how can I detect the culprit?

Windows上是否有任何工具/库可以帮助我找到罪魁祸首?这是一个相当大的代码库,具有多个线程。我主要为Linux编写代码;Windows是一个陌生的领域。感谢您的输入。 最佳答案 对于堆栈缓冲区,使用/GS编译,参见CompilerSecurityChecksInDepth对于堆缓冲区,您可以尝试使用堆gflag,参见GFlagsandPageHeap,但需要小心,因为所有分配,无论大小,都会有自己的页面。 关于windows-堆栈缓冲区溢出(Windows、C++):howcanId

windows - 您可以在 Windows wave 音频输入中重复使用缓冲区吗?

我正在使用Windows多媒体API来记录和处理波形音频(waveInOpen和friend)。我想以循环方式使用少量缓冲区。我知道你应该在向设备添加缓冲区之前使用waveInPrepareHeader,并且你应该在wave设备有“将缓冲区返回给应用程序”,然后再释放它。我的问题是,我是否必须取消准备并重新准备才能重新使用缓冲区?或者我可以将以前使用过的缓冲区添加回设备吗?此外,我在哪个线程上执行此操作重要吗?我正在使用回调函数,它似乎是在属于音频系统的工作线程上调用的。我可以在回调期间在该线程上调用waveInUnprepareHeader、waveInPrepareHeader和w

c++ - Windows 中的串行通信 - ClearCommError 在读取缓冲区中找不到数据

我想使用串行通信(使用USB到RS232转换器)将数据从笔记本电脑(windows7,处理器2.60GHz)发送到台式机(windowsxp,处理器3.10GHz)。WriteFile函数能够从笔记本电脑发送数据(NumberOfBytesWritten是正确的)。但是在桌面端,ClearCommError检测到读取缓冲区中没有数据。这是我桌面上的相关代码:while(1){ClearCommError(hPort,&dwErrors,&commStatus);if(commStatus.cbInQue!=0)ReadFile(hPort,&data,1,&dwBytesRead,NU

c++ - 具有透明缓冲区的 DirectX11 ClearRenderTargetViewback?

我正在尝试创建一个使用directx在透明View(即桌面显示)之上绘制不透明内容的窗口。使用DirectX11,我正在尝试执行以下操作,但它不会使背景透明。事实上,我输入的任何不透明度值都会给我完全相同的结果。我在做什么:floatcolor[4]={0.0f,0.0f,0.0f,0.0f};deviceContext->ClearRenderTargetView(backBuffer,color);工作重现代码(main.cpp):#include#include#pragmacomment(lib,"Winmm.lib")#include#pragmacomment(lib,"d

c++ - Windows 上的 WASAPI 捕获缓冲区大小

我使用WASAPI在Windows7上以共享模式捕获音频缓冲区。我使用的扬声器只能有48kHz、96kHz、192kHz或44.1kHz采样率。我的声卡是Realtek高清声卡。我需要知道如果我在另一个操作系统(如WindowsVista或Windows8)上执行我的程序,WASAPI的行为是否会有所不同。此外,我需要知道getBuffer是否会为使用不同硬件(不同声卡)的捕获缓冲区检索相同大小。我自己无法测试,在网上也找不到太多细节。但是我的程序必须在具有不同版本的Windows和不同硬件的不同计算机上运行。如果捕获的缓冲区大小不同,我的程序将无法在另一台计算机上正常运行。如果有人知

windows - 如何在控制台中检测当前是否启用了 Windows 10 缓冲区环绕模式

有什么方法可以检测控制台应用程序是否在启用Windows10新功能的情况下运行?ThisMSDNpage显示HKEY_CURRENT_USER\Console\ForceV2、HKEY_CURRENT_USER\Console\LineWrap和HKEY_CURRENT_USER\Console\{name}\LineWrap控制它,但除此之外解析不那么健壮,它可能不正确。如果用户切换到旧模式或从旧模式切换,更改将在控制台重新启动后才会生效。如果我开发应用程序,我可以在启动时进行检查。但是可能存在竞争条件,这使得注册表检查对于任何实际使用都毫无用处。我很好奇第三方控制台窗口的解决方案是

C Windows 缓冲区大小

假设我在Windows中使用recv函数从套接字接收数据。我很好奇最佳缓冲区有多大?我可以将其设置为1024字节,也可以将其设置为51200字节或更大。我想知道哪个对性能更好。这不仅适用于recv函数,假设我正在读取一个大文本文件,我需要一个非常大的缓冲区还是一个较小的缓冲区? 最佳答案 操作系统执行自己的缓冲,因此缓冲区的大小并不重要。性能损失在于函数调用:1字节缓冲区将是低效的,因为它需要对recv()的调用太多。缓冲区太大只是浪费空间。最佳大小大约是您希望在单个recv()调用中接收或处理的数据大小的两倍,下限约为1或2tcp

c++ - 是否可以使用内存缓冲区(或 PE 资源)来支持只读 SQLite 数据库?

我想使用Windows的“自定义资源”功能将存储在SQLite数据库中的相当大的数据block嵌入到我的二进制文件中。(这是一个日志记录工具的白名单)SQLite确实支持inmemorydatabases,但看起来这可能仅限于创建全新的数据库;并且似乎不支持从内存缓冲区读取;但我并不肯定。数据库是否支持这样的东西?(由于其他原因我必须嵌入SQLite,所以将它用于白名单也很棒......) 最佳答案 sqlite文档在线备份部分http://www.sqlite.org/backup.html有一些代码可以做你想做的事(即将内存数据