简体   繁体   English

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

[英]cast from 'BYTE* {aka unsigned char*}' to 'DWORD {aka long unsigned int}' loses precision [-fpermissive]

im trying to add an address to a module base address 我试图将地址添加到模块基地址

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


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

i don't know what is wrong 我不知道怎么了

As mentioned in a comment, pointers vary in size depending on the platform (64 bits or 32 bits), while integers (int, long, long int...) are usually 32 bits in both. 如评论中所述,指针的大小取决于平台(64位或32位),而整数(int,long,long int ...)通常都是32位。 Casting a pointer to an integer may produce a loose of precision in 64 bits compilations, that's the reason of the warning. 将指针强制转换为整数可能会导致64位编译时精度下降,这就是发出警告的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 错误:从“uint8_t* {aka unsigned char*}”转换为“unsigned int”会丢失精度 [-fpermissive] - error: cast from ‘uint8_t* {aka unsigned char*}’ to ‘unsigned int’ loses precision [-fpermissive] C++ 从 'std::__tuple... {aka 'unsigned int*'} 转换为 'uint32_t' {aka 'unsigned int'} 失去精度 - C++ Cast from ‘std::__tuple… {aka ‘unsigned int*’} to ‘uint32_t’ {aka ‘unsigned int’} loses precision 错误:从'...'转换为'unsigned int'会丢失精度[-fpermissive] - error: cast from ‘…’ to ‘unsigned int’ loses precision [-fpermissive] 如何解决隐式转换丢失整数精度:'size_t'(又名'unsigned long')到'int'警告? - How to solve the Implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' warning? iOS-隐式转换将整数精度'size_t'(aka'unsigned long')转换为'int' - iOS - implicit conversion loses integer precision 'size_t' (aka 'unsigned long') to 'int' 从“const char*”到“uint32_t {aka unsigned int}”的无效转换[-fpermissive] - invalid conversion from ‘const char*’ to ‘uint32_t {aka unsigned int}’ [-fpermissive] 错误:从'void *'到'test :: apr_size_t * {aka long unsigned int *}'的无效转换'[-fpermissive] - error: invalid conversion from ‘void*’ to ‘test::apr_size_t* {aka long unsigned int*}’ [-fpermissive] 错误:从'char *'转换为'unsigned int'会失去精度 - error: cast from 'char*' to 'unsigned int' loses precision 从“ const BYTE * {aka const unsigned char *}”到“ BYTE_PTR {aka unsigned char *}”的无效转换 - invalid conversion from ‘const BYTE* {aka const unsigned char*}’ to ‘BYTE_PTR {aka unsigned char*}’ xcode 构建失败 隐式转换丢失 integer 精度:“size_t”(又名“unsigned long”)到“socklen_t”(又名“unsigned int”) - xcode build failing over Implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'socklen_t' (aka 'unsigned int')
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM