从'BYTE * {aka unsigned char *}'转换为'DWORD {aka long unsigned int}'失去精度[-fpermissive]

时间:2017-02-15 09:30:13

标签: c++

我试图将地址添加到模块基地

HANDLE  snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pId); 
   MODULEENTRY32 module; 
   module.dwSize = sizeof(MODULEENTRY32); 
   Module32First(snapshot, &module); 


   CloseHandle(snapshot); 
      DWORD addr = 0x1D4192 + (DWORD)module.modBaseAddr;

我不知道出了什么问题

1 个答案:

答案 0 :(得分:1)

如注释中所述,指针的大小取决于平台(64位或32位),而整数(int,long,long int ...)通常都是32位。抛出指向整数的指针可能会在64位编译中产生松散的精度,这就是警告的原因。