DWORD_PTR 与参数 PDWORD 不兼容

问题描述 投票:0回答:0

这是代码中给我带来问题的部分。

auto Process::write_protected(DWORD_PTR dw_address, LPCVOID lpc_buffer, DWORD_PTR dw_size) -> bool
{
    DWORD_PTR oldProtect;
    if (VirtualProtectEx(h_process, (LPVOID)dw_address, dw_size, PAGE_EXECUTE_READWRITE, &oldProtect)) {
        WriteProcessMemory(h_process, (LPVOID)dw_address, lpc_buffer, dw_size, NULL);
        VirtualProtectEx(h_process, (LPVOID)dw_address, dw_size, oldProtect, NULL);
        return true;
    }
    return false;
}

这是我从 Visual Studio 收到的错误。 ““DWORD_PTR *”类型的参数与“PDWORD”类型的参数不兼容” 'BOOL VirtualProtectEx(HANDLE,LPVOID,SIZE_T,DWORD,PDWORD)':无法将参数 5 从 'DWORD_PRT *' 转换为 'PDWORD'

好吧,我想用这个代码来学习,但我需要先让它工作,这是唯一发出的问题,我在谷歌上搜索了答案,但没有运气,有什么想法可以解决这个问题吗?

之前编译没问题,现在编译了之后不就发生什么变化了吗?

c++ pointers memory
© www.soinside.com 2019 - 2024. All rights reserved.