草庐IT

c++ - 为什么控制台动画在 Windows 上这么慢? (有没有办法提高速度?)

好吧,我很无聊,所以想在控制台窗口中制作动画。现在,当我设置第一位时,我注意到它非常慢,整个屏幕填充字符大约需要333毫秒。我想知道是否有办法至少达到~20fps?这是我的代码:#include#include#include#include#include#defineWIDTH(100)#defineHEIGHT(35)boolSetWindow(intWidth,intHeight){_COORDcoord;coord.X=Width;coord.Y=Height;_SMALL_RECTRect;Rect.Left=0;Rect.Top=0;Rect.Bottom=Height-

c - 如何获取当前用户的用户名?

我想使用C编程访问Windows中的用户名,并使用该名称创建特定文件的路径,如“c:\users\john\Roaming.....等等”。所以对于每个系统用户名,例如“john”都是不同的。帮我在运行时找到用户名。 最佳答案 #includeintmain(void){printf("%s\n",getenv("USERPROFILE"));//Printuser'shomedirectory.return0;}要获取用户名而不是主路径,请将USERPROFILE替换为USERNAME。

c++ - 开关语句使用

我应该使用这种形式的switch语句吗:switch(msg){caseWM_LBUTTONDOWN:{charszFileName[MAX_PATH];HINSTANCEhInstance=GetModuleHandle(NULL);GetModuleFileName(hInstance,(LPWCH)szFileName,MAX_PATH);MessageBox(hwnd,(LPCWSTR)szFileName,L"Thisprogramis:",MB_OK|MB_ICONINFORMATION);}break;caseWM_CLOSE:DestroyWindow(hwnd);br

windows - 从 DllMain 调用 LoadLibrary

MSDNsays:ItmustnotcalltheLoadLibraryorLoadLibraryExfunction(orafunctionthatcallsthesefunctions),becausethismaycreatedependencyloopsintheDLLloadorder.ThiscanresultinaDLLbeingusedbeforethesystemhasexecuteditsinitializationcode.我试图从DllMain调用LoadLibrary但没有任何反应。我看到的唯一问题是加载的DLL将在我的DllMain的其余部分执行之前使用我的

c - 如何检查 Windows 程序的 C++ 文件是否存在?

这仅适用于Windows程序,因此可移植代码不是问题。我只需要:boolDoesFileExist(LPWSTRlpszFilename){//...} 最佳答案 根据尊者RaymondChen的说法,您应该useGetFileAttributesifyou'resuperstitious. 关于c-如何检查Windows程序的C++文件是否存在?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

windows - 用于在 Windows 中显示内存中 MHTML 的 ActiveX 组件

我正在创建一个小型Windows应用程序(C++),它会创建一些这样的窗口(CreateWindowEx等)。在一个窗口中,我想添加一个控件来显示MHTML从内存加载,即整个MHTML内容在字符串中,而不是在文件中。我已经尝试过Shell.Explorer组件,但我找不到向它注入(inject)除HTML之外的任何内容的方法(请参阅AtlAxCreateControl)。是否可以使用Shell.Explorer组件或任何其他组件来显示内存中的MHTML?即不将内容写入文件,然后给出文件路径。这行得通,但它不是最佳选择,如果我不能以任何其他方式做到这一点,它必须是最后的选择。PS:如果这

c++ - 从 C++ 公开的 Windows 性能计数器总是在 perfmon.exe 中产生 "Can' t 负载计数器

我正在尝试使用v2.0ofWindowsPerformanceCounters公开性能数据.我相信我已正确按照说明进行操作,但perfmon.exe总是对我的计数器集说“无法加载计数器”。这是我存储在名为PerformanceCounters.xml的文件中的list我通过运行创建一个.h和.rc文件:ctrppPerformanceCounters.xml-oPerformanceCounters.h-rcPerformanceCounters.rc这是我的测试代码:#include"PerformanceCounters.h"int_tmain(intargc,_TCHAR*arg

c++ - SetWindowPos() 跨进程处理多个监视器和不同的显示比例

我已经问过类似的问题here,但现在问题似乎有点不同,所以我想我会为它创建一个新问题。我正在使用SetWindowPos()从另一个进程移动/调整窗口大小。只要所有屏幕都使用相同的显示比例,这就可以正常工作,但在以下情况下它不会按预期工作:主屏幕位于(0,0),分辨率为3440x1440,缩放比例为150%。辅助屏幕位于(3440,0),分辨率为900x1440,缩放比例为100%。我的应用程序是PROCESS_PER_MONITOR_DPI_AWARE_V2,目标应用程序是PROCESS_DPI_UNAWARE(由Windows缩放)。现在,如果我移动一个窗口,使左上角在主屏幕上,而

windows - 有没有办法让 SendInput 与使用 GDK 的应用程序一起工作?

我有一个应用程序可以使用设置了UNICODE标志的SendInputAPI成功地注入(inject)键盘输入。这会导致使用E7的VK代码(VK_PACKET)生成WM_KEYUP和WM_KEYDOWN消息,该消息会被适本地转换为正确的WM_CHAR消息。这适用于我尝试过的所有应用程序,除了使用GDK的Pidgin。GDK似乎只查找WM_KEYUP消息。由于此处生成的那些实际上没有任何输入字符的指示(只有WM_CHAR有),因此输入被忽略。有什么办法可以解决这个问题。如果我在没有UNICODE标志的情况下使用SendInput,我就不太走运。 最佳答案

windows - 如何在 Windows 上模拟 shm_open?

我的服务需要存储一些信息(至少,至少20位左右,但我可以很容易地使用更多信息)这样即使服务崩溃或异常终止,它也会在服务重启后持续存在它不会在重启后持续存在可以用很少的开销读取和更新如果我将此信息存储在注册表或文件中,系统重启时它不会自动清空。现在,如果我在现代POSIX系统上,我会使用shm_open,这将创建一个共享内存段,该段在进程重新启动但系统重新启动时持续存在,我可以使用shm_unlink如果持久数据不知何故被破坏,清理它。我找到了MSDN:CreatingNamedSharedMemory并开始在我的服务中重新实现它的一部分;这基本上使用CreateFileMapping(