Я создаю DLL, которая вводится в процесс, и возвращаю шестнадцатеричное значение, например: 570AC400. У меня есть функция типа __int64 GetLocalPlayer_EX()
, которая возвращает эти шестнадцатеричные значения, но текст, сохраненный в TXT, возвращает странную строку, такую как @ * ░B
char *ptr = reinterpret_cast<char*>(GetLocalPlayer_EX());//GetLocalPlayer_EX() is function return hex value
std::string str(ptr);
printf("LocalPlayer = %s\n", ptr);//print to test, but return strange string like @*░B should be 570AC400
void WriteLogFile(const char* szString)//convert char hex to string and save in txt
{
FILE* pFile = fopen("C:\\TesteArquivo\\TesteFile.txt", "a");
fprintf(pFile, "%s\n", szString);
fclose(pFile);
}
WriteLogFile(vOut); // call function to save txt file
PS: если я использую printf("LocalPlayer =%I64X\n", ptr);
, возвращаемое шестнадцатеричное значение будет правильным.