草庐IT

c++ - 从管道读取随机失败

我正在为命令行可执行文件编写集成测试驱动程序。我同时控制驱动程序和可执行文件,因此我可以保证它们的行为——例如,可执行文件从不从标准输入读取,它只接受命令行参数,执行它的操作,然后将输出写入文件和标准输出。我希望捕获进程的退出代码和标准输出以进行验证。这是我正在使用的代码:#includeclassPipe{HANDLEReadHandle;HANDLEwritehandle;public:Pipe(){SECURITY_ATTRIBUTESsaAttr;saAttr.nLength=sizeof(SECURITY_ATTRIBUTES);saAttr.bInheritHandle=T

c++ - 是否可以与另一个进程共享现有的 RAM block ?

背景我有一个现有的32位应用程序,它分配了相当大的RAM(>128MB)block(通过malloc/new)并填充了一些图像数据(多帧值)。应用程序的插件可以通过SDK-API调用访问指向这blockRAM开头的只读指针(constchar*)。其他API调用可用于检索元数据,例如宽度/高度/位深度等。在SDK-API调用之外,我无法/几乎无法控制此应用程序。我还有另一个64位应用程序(在我的控制下),它需要上述数据作为输入,并且由于保证64位进程的上采样/3D体积重建需要更多的RAM。问题我希望与64位进程共享映射到32位进程中此现有指针的物理内存(最初不是通过CreateFile

c++ - Inno 安装程序 : Put DLLs in a subdirectory

我想将依赖项(几个DLL文件)复制到一个单独的子目录中。安装我的程序后,目录结构如下所示:动态链接库/一个.dllb.dllsample/pg.exe我脚本的相关部分如下:[Dirs]Name:"{app}\sample"Name:"{app}\dll"[Files]Source:"pg.exe";DestDir:"{app}";Flags:ignoreversion;iconfile;Source:"pg.ico";DestDir:"{app}";sampleiniandgeoemtryfileSource:"geometry.xml";DestDir:"{app}\sample"S

c++ - 无法打开输出文件 : permission denied

我在Windows10机器上运行CodeBlocks。从今天早上开始,我无法构建特定项目,因为打开输出.exe文件的权限被拒绝。该任务起初不愿意通过任务管理器关闭,在重新启动CodeBlocks后它就没有出现,问题仍然存在。当我尝试删除该文件时,我再次遭到拒绝,因为“该文件已在系统中打开”。禁用防病毒软件不起作用。有什么见解吗? 最佳答案 重新启动计算机有什么帮助吗?:-)应该解决任何文件锁。不要进入休眠状态并返回,而是实际上重新启动。或者至少注销然后重新登录。编辑:想到Sysinternals.它可能会帮助您找到锁的来源。

c++ - InterlockedCompareExchange - 确切的对齐要求是什么以及如何执行它们?

我无法理解MSDN文档对InterlockedVariableAccess的含义函数族。我用InterlockedExchange用于设置和InterlockedCompareExchange用于获取由多个线程使用的成员变量。该成员位于一个1字节的打包类中:#pragmapack(1)classMyClass{char_;longm_MyMember;//...}所以成员是由设置的InterlockedExchange(&m_MyMember,1);得到了longvalue=InterlockedCompareExchange(&m_MyMember,0,0);InterlockedE

c++ - CMake 和 Window .Lib 文件

我一直在努力在Stackoverflow上寻找这个问题的答案,至少是我理解的答案。我最近购买了CLion,并想将一个旧项目从VisualStudio移植到它上面。但我不知道如何将.lib文件链接或添加到我的项目中。我需要链接Xinput和DSound。在VisualStudio中,我只是添加了header,然后将它们添加到我的文件的顶部#pragmacomment(lib,"XInput.lib")#pragmacomment(lib,"Dsound.lib")我完全不知道如何使用CMake链接到这些库,因为我是一个完全的初学者。任何帮助将不胜感激这是我当前的CMake文件cmake_

c++ - 编译问题 : LIBUSB_1 with cmake project on Windows

第一次尝试在我的cmake/c++项目中,编译时出现以下错误:C:\local\projects\synergy-usb\synergy-through-usb-master>cmake.YouhavecalledADD_LIBRARYforlibrarycryptoppwithoutanysourcefiles.ThistypicallyindicatesaproblemwithyourCMakeLists.txtfileCMakeError:Thefollowingvariablesareusedinthisproject,buttheyaresettoNOTFOUND.Pleas

c++ - OpenFileById 失败并显示 ERROR_ACCESS_DENIED

我正在开发一个产品,其中OpenFileById()在文件和文件夹上以ERROR_ACCESS_DENIED失败,否则可以访问(意味着CreateFile()在具有相同访问级别/共享模式等的路径指定的相同文件或文件夹上成功)。我正在使用备份语义,这样我也可以获得文件夹的句柄;SE_BACKUP_NAME和SE_RESTORE_NAME权限已启用。除了这台机器(Windows8.1),此代码在其他任何地方都有效。该进程在本地系统下作为服务运行,我尝试让他们将其更改为具有管理员权限的不同帐户,但也没有用。有问题的文件/文件夹尚未打开以供删除(根据文档,这是此功能将失败并显示ERROR_AC

c++ - 为什么这个循环会破坏我的内存?

我的MMF类中有这个函数voidClear(){intsize=SizeB();intiter=size/sysInfo.granB;for(inti=0;i所以它所做的是以最小的可寻址block(在本例中为64k)遍历整个文件,映射View,写入0,取消映射,重复。它工作正常并且速度非常快,但是当我使用它时,会出现一些幻象内存使用情况。根据Windows任务管理器,进程本身只使用了几兆字节,但当我在较大的文件上使用它时,“物理内存使用量”猛增。例如,在一个2GB的文件上使用它足以让我的笔记本电脑昏迷几分钟,物理内存使用率达到99%,任务管理器中的所有内容都在疯狂减少内存并且所有内容都

c - 如何找到鼠标按钮 'click' 位置 x 和 y?

我尝试了很多关于搜索获取鼠标的x和y位置的方法在C中的windows控制台内单击,但我找不到所以我我在这里发帖。我正在创建自己的文本编辑器项目(为了好玩),我必须集成一项功能,每当我在控制台内单击时,光标都会移动到它(单击x、y)我不想知道如何移动光标,但我想知道如何获得点击位置。此代码可以接收所有鼠标和键盘鼠标事件,甚至鼠标单击:#include#includeHANDLEhStdin;DWORDfdwSaveOldMode;VOIDErrorExit(LPSTR);VOIDKeyEventProc(KEY_EVENT_RECORD);VOIDMouseEventProc(MOUSE