C++ 从无符号长十六进制转换为DWORD

C++ 从无符号长十六进制转换为DWORD,c++,c,C++,C,我需要将无符号长(十六进制)转换为DWORD 我通常会 DWORD MyHex = 0x3F0000; 但事实上,我得到的是 unsigned long MyLong = 3f0000; 如何将MyLong转换为MyHex 当我只是直观地把它打印到一个文件中,然后做这些事情时,一切都很好 fprintf(pFile, "0x%X\n", MyLong); 但现在我需要实际使用该字符串作为DWORD根据文档,DWORD实际上只是无符号长的typedef。不需要转换。您可以像使用DWORD一样

我需要将
无符号长
(十六进制)转换为
DWORD

我通常会

DWORD MyHex = 0x3F0000;
但事实上,我得到的是

unsigned long MyLong = 3f0000;
如何将
MyLong
转换为
MyHex

当我只是直观地把它打印到一个文件中,然后做这些事情时,一切都很好

fprintf(pFile, "0x%X\n", MyLong);

但现在我需要实际使用该字符串作为
DWORD

根据文档,
DWORD
实际上只是
无符号长的typedef。不需要转换。您可以像使用
DWORD一样使用
MyLong

,因此问题是如何将十六进制数的字符串表示形式转换为
DWORD
unsigned long MyLong=3f0000
无法编译,因此它一点也不清楚。我想我们可以将字符串rep转换为dword,因为我可以使用sprintf将其转换为char[256]并按这种方式进行,我想……我们可以决定您想要什么。您是
unsigned long MyLong=3f0000
应该有
0x3f0000
我会假设(因为
3f0000
在C中不是有效的数值常量)?在这种情况下,
MyHex
MyLong
已经是相同的值。现在还不太清楚你说“convert”是什么意思。不管你用哪种方式都可以。lol。目前程序要求我每次编译DWORD MyOffset=0x81231972时手动键入地址(每次更改时我都必须键入此地址)我使用另一个程序自动获取新的偏移量,并使用fprintf(pFile,“0x%X\n”,MyLong)将其打印到一个文件中;所以在这个文件中,它是0x2B71CC4,然后我把它手动输入到另一个程序中,这就是为什么我试图避免这样做,手动部分。