winapi

    1热度

    1回答

    我们正试图解决服务器运行一段时间后服务器启动异常的生产服务器上的一个令人讨厌的问题。 诊断程序让我们相信可能存在DLL中的错误,该错误由此服务器上运行的进程之一导致全局原子泄漏。假定的向量是一个调用RegisterClass而没有相应的UnregisterClass的进程(并且类名称使用随机数作为名称的一部分,所以每次进程启动时它都是不同的类名)。 本文提供了一些信息:https://blogs.

    0热度

    1回答

    我遵循建议使用WM_SETREDRAW而不是LockWindowUpdate()来填充项目时禁止列表视图更新。发现WM_SETREDRAW消息与真实后,我发现我的标题行不显示。 InvalidateRect()和UpdateWindow()组合或RedrawWindow()无法显示所有者绘制的标题。为了显示标题行,我需要通过调整大小或滚动列表视图屏幕来手动强制新的WM_PAINT消息。 此行为仅限

    2热度

    1回答

    有2个应用程序。 AppCMD是一个命令行应用程序,AppMAIN用一些命令行参数启动AppCMD。 不幸的是AppMAIN似乎没有处理输出关闭AppCMD非常好,出了问题。 我想将呼叫记录到AppCMD及其输出以查看发生了什么。 为了做到这一点,我想用另一个二进制AppWRAP替换AppCMD,它将呼叫转发给重命名的AppCMD并记录它的输出。 AppWRAP应该像一个透明的中间人。 出于测试目

    3热度

    1回答

    我试图获取暂停写字板的线程上下文。但是,不管我对代码做什么样的变化,它会返回87 STARTUPINFO si = { 0 }; PROCESS_INFORMATION pi = { 0 }; CONTEXT ctx; if (CreateProcess(L"C:\\Windows\\write.exe", NULL, NULL, NULL, false, CREATE_SUSPENDED

    0热度

    2回答

    我知道GetFinalPathNameByHandle可以用来获得符号链接或重分析点的目标,但有些情况下它的使用是不理想的情况: 如果目标不可用,不存在或不能打开,CreateFile上的符号链接失败,从而无法获取路径。 如果我将一个符号链接“a”指向文件“b”并创建一个符号链接“b”以将文件“c”指向文件“c”,则该函数会沿着整个链条返回“c”。 当我已经掌握了手头上实际的符号链接的时候,这个函

    0热度

    1回答

    我正在实现一个Win32控制台文本编辑器,它有一个内部消息队列,用于传递有关哪些区域需要重新绘制,消息来自插件等信息。我更喜欢它默认为单线程(如果没有任何事情发生这需要额外的线程)。我考虑2种消息队列实施策略: 使用通用队列和Win32事件,所以我可以用WaitForMultipleObjectsEx同时等待内部消息和用户输入,同时传递控制台输入句柄和事件句柄。在这种情况下,文本编辑器可以完全在一

    4热度

    1回答

    我尝试使用下面的代码来枚举从64位应用的32位程序的模块名称: if (EnumProcessModulesEx(hProcess, hMods, sizeof(hMods), &cbNeeded, LIST_MODULES_ALL)) { for (i = 0; i < (cbNeeded/sizeof(HMODULE)); i++) { TCHAR szMod

    2热度

    1回答

    我想删除一些像素是在具有圆角和我找不到在C++ 这里的任何解决方案的对话窗口可见去除像素,是我使用的代码,至于我搜索我想我需要在WS_EX_LAYERED窗口中使用UpdateLayeredWindow函数而不是SetLayeredWindowAttributes,但我无法找到实现它的方法。 有谁知道如何从我的对话框的圆角删除这些像素? 代码: INT_PTR CALLBACK WinProc(H

    -3热度

    1回答

    因此,我完全无法开始安装。有人可以给我一些方向或类似的,或许一个视频,至少可以帮助我。这将非常感激。

    0热度

    1回答

    关注的变化,我用这个方法来安装本地钩来检测窗口的变化: HHOOK hHook = SetWindowsHookEx(WH_CBT,CBTProc,NULL,(DWORD)GetCurrentThreadId()); 回调函数是在这里, LRESULT CALLBACK CBTProc(int code, WPARAM wParam, LPARAM lParam) { printf("go