Windows api SIZE_T 在内存和控制台中不显示相同的值
Windows api SIZE_T don't show same value in memory and in console
我正在尝试处理 Windows.h 结构中的 SIZE_T 变量,但返回值有问题。
我不明白为什么内存和输出不一样。
我应该在内存中使用控制台中显示的值工作,这不太有趣。那我卡住了。
简介
我试了一些测试看是否正常。
代码:
SIZE_T aaa = 10000;
std::cout << "The aaa value is : " << aaa << std::endl;
输出:
The aaa value is : 2710
我试图强制转换以查看该值是否会在内存中发生变化
int a = (int)aaa;
unsigned int b = (unsigned int)aaa;
long c = (long)aaa;
unsigned long d = (unsigned long)aaa;
但还是一样,内存中的值保持不变 (10000)。
主要问题
代码:
SIZE_T val;
WindowsFunct(&val); //val get 65536 in memory
std::cout << "The val is : " << val << std::endl;
输出:
The val is : 10000 //The value that i would deal with in my program
那么他们有没有办法在内存中获取显示的值?
编辑:
原代码:
MEMORY_BASIC_INFORMATION mbi;
LPVOID mainModuleAddr = (LPVOID)GetModuleHandle(NULL);
VirtualQuery(mainModuleAddr, &mbi, sizeof(mbi));
std::cout << "Main module Region Size: " << mbi.RegionSize << std::endl;
你的 2710 输出是因为在某些时候你已经将 std::hex iomanip 提供给 cout。 10000 == 0x2710.
如果您使用 std::dec iomanip,它将显示为 10000。
std::cout << "The aaa value is : " << std::dec << aaa << std::endl;
我正在尝试处理 Windows.h 结构中的 SIZE_T 变量,但返回值有问题。
我不明白为什么内存和输出不一样。
我应该在内存中使用控制台中显示的值工作,这不太有趣。那我卡住了。
简介
我试了一些测试看是否正常。
代码:
SIZE_T aaa = 10000;
std::cout << "The aaa value is : " << aaa << std::endl;
输出:
The aaa value is : 2710
我试图强制转换以查看该值是否会在内存中发生变化
int a = (int)aaa;
unsigned int b = (unsigned int)aaa;
long c = (long)aaa;
unsigned long d = (unsigned long)aaa;
但还是一样,内存中的值保持不变 (10000)。
主要问题
代码:
SIZE_T val;
WindowsFunct(&val); //val get 65536 in memory
std::cout << "The val is : " << val << std::endl;
输出:
The val is : 10000 //The value that i would deal with in my program
那么他们有没有办法在内存中获取显示的值?
编辑: 原代码:
MEMORY_BASIC_INFORMATION mbi;
LPVOID mainModuleAddr = (LPVOID)GetModuleHandle(NULL);
VirtualQuery(mainModuleAddr, &mbi, sizeof(mbi));
std::cout << "Main module Region Size: " << mbi.RegionSize << std::endl;
你的 2710 输出是因为在某些时候你已经将 std::hex iomanip 提供给 cout。 10000 == 0x2710.
如果您使用 std::dec iomanip,它将显示为 10000。
std::cout << "The aaa value is : " << std::dec << aaa << std::endl;