草庐IT

c++ - 在 Windows 屏幕上渲染缓冲区

我正在寻找一种将字符缓冲区渲染到窗口内容区域的方法。这只是伪造的,但旨在展示我真正想做的事情:charbuffer[300][200][3];//300pxx200pxxRGBbytes//...renderstuffintobufferFancyWindowsFunctionToRenderBufferOnWindow(my_hwnd,buffer,300,200,offset_x,offset_y);有没有办法做类似的事情? 最佳答案 我认为您需要创建一个与设备无关的位图(DIB)。如果您已经有一个准备好放置在应用程序窗口上的像

c - fread() 没有写入缓冲区

#include#includeintcount=0;FILE*pFile=0;longSize=0;void*memfrob(void*s,size_tn){char*p=(char*)s;while(n-->0)*p++^=42;returns;}intmain(){fopen_s(&pFile,"***","r+");fseek(pFile,0,SEEK_END);Size=ftell(pFile);char*buffer=(char*)malloc(Size);memset(buffer,0,Size);fread(buffer,Size,1,pFile);fclose(pFi

c# - 如何获取窗口类名的长度,以便知道要分配多大的缓冲区?

如何预先获取类名长度,以便将其传递到GetClassName()中的nMaxCount参数中功能?类似WM_GETTEXTLENGTH的东西控件存在的消息或窗口类名称是否定义了固定的大小限制?如果是,该值是多少?我的目标是传递精确大小而不是重新分配方法(调用GetClassName()直到它返回小于其缓冲区的大小)。我当前的实现(没有重新分配方法):[DllImport("user32.dll",SetLastError=true,CharSet=CharSet.Auto)]staticexternintGetClassName(IntPtrhWnd,StringBuilderlpCl

c++ - DirectX - 顶点缓冲区如何工作?

我现在正在学习DirectX,我阅读了很多关于VertexBuffer的内容。由于您不能仅通过阅读来学习编程,因此我正在使用DX11制作一个小型引擎(嗯,我的问题与版本无关)据我所知,我在VertexBuffer中存储顶点,实际上我将其存储在图形卡上。好吧,我阅读了有关动态和静态缓冲区的信息。所以如果我理解正确的话,静态缓冲区是用顶点初始化的,并且初始化的顶点不会改变。好的,但我什么时候真正需要它。我的意思是在游戏或其他什么时候,我什么时候有固定顶点?也许对于某些UI对象..?-但即使这些也不是每次都不变..你可以移动它们的2D位置......等等..下一点是关于动态顶点缓冲区的,例如

c++ - 如何从 std::string 获取可写的 C 缓冲区?

我正在尝试将我的代码从使用MFC的CString移植到MicrosoftWindows平台的std::string。我对某些事情很好奇。在下面的例子中说:CStringMakeLowerString(LPCTSTRpStr){CStringstrLower=pStr?pStr:L"";CharLower(strLower.GetBuffer());//UseWinAPIstrLower.ReleaseBuffer();returnstrLower;}我使用strLower。GetBuffer()获取一个可写缓冲区,传递给CharLower应用程序接口(interface)。但是我在st

windows - 所有 Windows 控制台应用程序屏幕缓冲区大小

有没有办法更改Windows中所有控制台应用程序的默认屏幕缓冲区大小(在它们变得不可用之前的可滚动行数)?注册表项或其他东西。我不想为我开发的每个控制台应用程序设置它。问候, 最佳答案 HKEY_CURRENT_USER\Console\里面有一堆键可以调整。 关于windows-所有Windows控制台应用程序屏幕缓冲区大小,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/739

尽可能快地比较缓冲区

我需要按block比较两个缓冲区是否相等。我不需要有关两个缓冲区关系的信息,只要每两个block是否相等即可。我的intel机器最高支持SSE4.2天真的做法是:constsize_tCHUNK_SIZE=16;//128bitforSSE2integerregistersconstintARRAY_SIZE=200000000;char*array_1=(char*)_aligned_malloc(ARRAY_SIZE,16);char*array_2=(char*)_aligned_malloc(ARRAY_SIZE,16);for(size_ti=0;i与我第一次使用SSE的尝试

windows - windows中COM口FIFO缓冲区的作用

谁能解释一下Windows中FiFo缓冲区检查(在设备管理器的高级COM端口设置中)的作用?选中/取消选中FIFO缓冲区如何影响从COM端口读取数据?非常感谢您的有用回复! 最佳答案 IBM-PC设计中使用的原始UART芯片是8250.当接收器忙于接收下一个字节时,它可以只存储一个接收到的字节。这就对操作系统串口驱动的响应能力提出了很高的要求,响应“数据接收”中断。它必须足够快才能在接收器覆盖它之前读取该字节。不够快会导致超限错误和无法恢复的数据丢失。高中断率也是有害的。16550UARTchip改进了该设计.它有一个更大的缓冲区,

windows - 在堆栈上分配更多页面大小的缓冲区会破坏内存吗?

在Windows中,堆栈的实现方式如下:指定页面之后是已提交的堆栈页面。它的保护标志是protected。因此,当thead引用protected页面上的地址时,会出现内存错误,这会使内存管理器将protected页面提交到堆栈并清除该页面的protected标志,然后将新页面保留为protected页面。但是,当我分配一个大小超过一页(4KB)的缓冲区时,预期的错误并没有发生。为什么? 最佳答案 很好的问题(+1)。有一个技巧,很少有人知道(驱动程序编写者除外)。当您在堆栈上分配大缓冲区时-编译器会自动添加所谓的堆栈探测。这是一个

c++ - 使用 GDI+ 和 C++ 将 JPEG 编码的屏幕截图保存到缓冲区

我从anotherarticlehereonSO改编了这段代码.它获取桌面的屏幕截图并将其写入名为“test.jpg”的文件。我有兴趣将JPEG数据直接保存到缓冲区以通过网络发送。我很确定GdipSaveImageToStream是我需要的,但我不知道它是如何工作的。GpImage参数特别令人困惑。感谢您提供的任何帮助。#include"stdafx.h"#include"windows.h"#include"gdiplus.h"usingnamespaceGdiplus;usingnamespaceGdiplus::DllExports;intGetEncoderClsid(WCHA