【发布时间】:2014-10-22 08:34:59
【问题描述】:
我需要将unsigned long(十六进制)转换为DWORD。
我通常会有
DWORD MyHex = 0x3F0000;
但我却得到了
unsigned long MyLong = 3f0000;
如何将MyLong 转换为MyHex?
当我只是在视觉上将它打印到一个文件并执行时很好。
fprintf(pFile, "0x%X\n", MyLong);
但现在我需要将该字符串实际用作DWORD。
【问题讨论】:
-
那么问题是如何将十六进制数字的字符串表示形式转换为
DWORD?unsigned long MyLong = 3f0000不会编译,所以不清楚。 -
我想我们可以将字符串 rep 转换为 dword 因为我可以使用 sprintf 转换为 char[256] 并且我猜是这样的......
-
好吧,想想你想要什么。
-
你的
unsigned long MyLong = 3f0000;应该有0x3f0000我会假设(因为3f0000在C 中不是一个有效的数字常量)?在这种情况下,MyHex和MyLong已经是相同的值。当您说“转换”时,您的意思不是很清楚。 -
无论哪种方式都可以让它发挥作用,哈哈。目前,程序要求我在每次编译时手动输入地址 DWORD MyOffset = 0x81231972(每次更改时我都必须输入)我使用另一个程序自动获取新的偏移量,然后使用 fprintf(pFile , "0x%X\n", MyLong);所以在文件中它就像这个 0x2B71CC4 然后我把它手动输入到另一个程序中,这就是为什么我试图避免这样做,它的手动部分。