两个读取出的字符完全一样,但就是不能划等号; 但是同一个应用程序中,其他部位 同样时汉字 却匹配了?
附图 1 图2
看差别
看代码别疑惑 学习用 我没那胆子
switch (周围对象类型)
{
// 周围对象名 是预定输入的检索对比对象 字符串1
// 解析周围对象名称 是内存中读取出 字符串2
case 1:
周围对象偏移 = 0x87D0;
case 2:
{周围对象偏移 = 0x87F0;
std::string 解析周围对象名称 = (char*)(周围对象 + 周围对象偏移);
std::string 解析周围对象名 = StdStringToGBK(周围对象名); //UTF8toGBK
printf("TargetName:%s %d\n\n", 解析周围对象名.c_str(), 解析周围对象名.length());
printf("MemoryName:%s %d\n\n", 解析周围对象名称.c_str(), 解析周围对象名称.length());
if (解析周围对象名称.find(周围对象名) != 解析周围对象名称.npos)
{
printf("successful: 0x%X ", 周围对象);
返回值 = 周围对象;
return 返回值;
break;
}周围链表节点 = *(DWORD*)(周围链表节点);
break;
}
case 3:
{周围对象偏移 = 0x87C4;
std::string 解析周围对象名称 = (char*)(周围对象 + 周围对象偏移);
std::string 解析周围对象名 = StdStringToGBK(周围对象名);
printf("TargetName:%s\n\n", 解析周围对象名.c_str());
printf("MemoryName:%s\n\n", 解析周围对象名称.c_str());
if (解析周围对象名称.find(解析周围对象名) != 解析周围对象名称.npos)
{
printf("successful: 0x%X ", 周围对象);
返回值 = 周围对象;
return 返回值;
}周围链表节点 = *(DWORD*)(周围链表节点);
break; }
}
谁能解解惑 并提出建设性意见; 这是 同一个程序对不同部分采取不同编码 还是我个人代码错误?