草庐IT

STM32H563

全部标签

c++ - boost::interprocess 共享内存在 32 和 64 位进程之间

我正在尝试让boost::interprocess在32位和64位进程之间共享内存。Thisbugtrackerentry这表明这在我使用的Boost1.49中是可能的。作为测试,我尝试共享一个无符号整数。这是一个带有两个按钮的简单Qt应用程序。#defineSHARED_MEMORY_NAME"Mysharedmemory"#defineSHARED_VAR_NAME"testVar"namespacebip=boost::interprocess;voidon_createMemButton_clicked(){std::cout(SHARED_VAR_NAME)(42);std:

c++ - VS 2010 中 win32 应用程序中的文件夹复制

我正在编写以下代码voidcopyDir(void){SHFILEOPSTRUCTs={0};s.hwnd=hwnd;s.wFunc=FO_COPY;s.pTo="E:\\dest\0";s.pFrom="Dir\\*\0";s.fFlags=FOF_SILENT;SHFileOperation(&s);}上面的函数成功地将一个文件夹和子文件夹复制到目标路径,我遇到的唯一问题是当目标路径上不存在文件夹时,windows提示“你想创建这个文件夹”,怎么能我绕过此提示和Windows显示的Windows进度条。 最佳答案 你需要使用这个

windows - 如何获取 win32_service 恢复选项卡属性

关于可以在此处看到的服务的恢复选项卡属性:是否有API可以获取以下属性值:例如值的第一次失败:“不采取任何行动”第二次失败后续失败重置失败计数我更喜欢在PowerShell中执行此操作的方法,但也想了解其他选项。 最佳答案 我不熟悉PowerShell,但有可用的Win32API:QueryServiceConfig2().将dwInfoLevel参数设置为SERVICE_CONFIG_FAILURE_ACTIONS,并在lpBuffer参数中传递一个指向缓冲区的指针,该缓冲区的大小足以接收SERVICE_FAILURE_ACTIO

windows - 使用GDI+绘制PixelFormat32bppPARGB图像使用常规公式而不是预乘公式

这里是一些显示问题的最小代码:staticconstintMAX_WIDTH=320;staticconstintMAX_HEIGHT=320;Gdiplus::BitmapforegroundImg(MAX_WIDTH,MAX_HEIGHT,PixelFormat32bppPARGB);{Gdiplus::Graphicsg(&foregroundImg);g.Clear(Gdiplus::Color(10,255,255,255));}Gdiplus::BitmapsoftwareBitmap(MAX_WIDTH,MAX_HEIGHT,PixelFormat32bppPARGB);

c++ - 从 32 位应用程序 Hook 64 位进程

我正在使用SetWindowHookEx将DLL加载到另一个进程中,但我需要能够挂接到32位和64位进程。我想我需要两个单独的DLL,但是我可以在不创建两个版本的“启动器”应用程序的情况下做到这一点吗?我需要将DLL句柄传递给SetWindowsHookEx,但我无法使用LoadLibrary获取它。 最佳答案 使用进程外COM+对象承载DLL。您可以使用此方法从32位调用64位代码,这样大多数启动器代码都保持不变,除了您决定加载32位或64位COM+对象的if语句。可以对该对象进行编码以将适当版本的DLL加载到进程中,一个用于64

windows - PAR 和 Win32::Exe

我在32位Windows7上运行StrawberryPerl。我还使用Par::Packer创建独立的可执行文件。问题是PAR::Packer使用了一个Camel图标,我想用不同的图标替换它。为此,我使用Win32::Exe。运行Win32::Exe的更新脚本后,我可以更改图标,但现在可执行文件不再起作用。禁用GUI标志并启用控制台后,我现在得到以下输出:Usage:foo.exe[-Alib.par][-Idir][-Mmodule][src.par][program.pl]foo.exe[-B|-b][-Ooutfile]src.par 最佳答案

c++ - 从 C++ 中的 WMI(Win32_LogicalDisk 类)调用 Chkdsk -> 'Parameter is not valid'

我正在尝试从C++中的WMI运行Chkdsk(我正在使用QtFramework)。“ExecMethod”返回“参数无效”。我已经根据http://msdn.microsoft.com/en-us/library/cc250766.aspx设置了参数->我正在使用半同步调用。我正在使用MSDN文档(Win32_LogicalDisk、WMIC++应用程序示例、Win32_Volume,...)我也尝试过使用Win32_Volume,但效果不佳。我的部分代码:IWbemLocator*pLoc=NULL;HRESULThres=CoCreateInstance(CLSID_WbemLoc

c++ - 从用户模式 ​​win32 应用程序可靠地找到当前进程的 _write() 函数的地址

我正在编写一个应用程序,可以从系统上的任何用户模式进程捕获stdout/stderr和调试消息,并将其打印到控制台。由于程序的性质,无论是GUI、Windows服务等,我过去一直在编写程序的情况有几种……;看不到控制台输出,仅仅是因为没有控制台。解决此问题的明显方法是将打印语句更改为调试打印语句,例如OutputDebugString(),然后附加调试器并查看输出。有时设置调试器并查看所需的输出可能很棘手,尤其是在内核模式调试中。理想情况下,我正在编写的这个应用程序将允许您指定一个PID(并最终将处理驱动程序,现在不用担心)——并且无需作为调试器附加到该应用程序,它将显示所有输出到调试

windows - 如何使用 Puppet 基于 32/64 位操作系统动态选择系统文件夹的路径

我正在使用Puppet在Windows2008服务器R2上自动部署我的Web应用程序。我将通过几个步骤访问系统文件夹(System32或SysWOW64,具体取决于32/64位操作系统)。让我采取以下步骤之一:我将访问“appcmd.exe”以启动/停止网站。当脚本在32位机器上运行时,我需要访问位于'C:/Windows/System32/inetsrv/appcmd.exe'的文件,当脚本在64位机器上运行时机器,我需要访问位于'C:/Windows/SysWOW64/inetsrv/appcmd.exe'的文件这是我编写的脚本部分。我不想硬编码路径。根据操作系统,我希望选择“ap

windows - CMake 在 64 位平台上找到 32 位 GDI+

我想构建一个在32位和64位Windows上都需要GDI+的程序。我正在使用CMake3.3.2、Windows1064位、VisualStudio2015。作为最小情况,我有这个CMakeLists.txt:cmake_minimum_required(VERSION3.3)find_library(GDIPgdiplus)我在build子目录中运行它作为cmake..或cmake-Ax64..如果我比较两次运行的CMakeCache.txt,我发现它肯定选择了32位或64位选项(例如对于CMAKE_LINKER)但它找到了32位gdiplus.lib在这两种情况下//Pathtoa