【发布时间】:2016-10-20 09:57:09
【问题描述】:
我正在制作一个通过放置偏移量(十六进制)来转储文件的项目。我必须像 0xBEE4DC 一样将十六进制与 0x 放在一起,因为如果我像 BEE4DC 那样放置没有 0x 的十六进制,应用程序将崩溃或返回错误。有没有办法在没有“0x”的情况下输入十六进制?
这是我的代码。我对这个项目保密,所以我不会显示比这更多的代码。
转储1.cpp
void LoadMetadata(char* szFile)
{
string mystr;
int offset2;
int offset1;
std::cout << "Input unknown offset #1: ";
getline(cin, mystr);
stringstream(mystr) >> offset1;
std::cout << "Input unknown offset #2: ";
getline(cin, mystr);
stringstream(mystr) >> offset2;
std::cout << "\n";
...
}
dump2.cpp
static int offset2;
static int offset1;
void LoadDumpLib(char* szFile)
{
...
pCodeRegistration = (DumpCodeRegistration*)MapVATR(offset2, pLibIl2Cpp);
pMetadataRegistration = (DumpMetadataRegistration*)MapVATR(offset1, pLibIl2Cpp);
...
}
【问题讨论】:
-
您可以将您的十六进制数(开头没有“0x”)作为字符串读取,然后解析字符串(检查它是否有“0x”,然后在下一步操作之前添加“0x”如果需要)