我在将二进制文件中的字符串与 char 文件进行比较时遇到问题,我不知道如何解决(我在 cpp 中很新)。
我有这个代码来制作一个dll:
char text[5];
DLL_EXPORT char *LIMGcheck(char *archivo){
FILE *origen = fopen(archivo, "r");
if(origen){
if(_fseeki64(origen, 0, SEEK_END)){
fclose(origen);
return "-1";
}else{
if(_fseeki64(origen, _ftelli64(origen)-16384, SEEK_SET)){
fclose(origen);
return "-1";
}else{
fread(text, sizeof(char), 4, origen);
fclose(origen);
//return text;
if (strncmp(text, "LIMG", 3)){
return "1";
}else{
//MessageBoxW(NULL, L"No tiene LIMG", L"AVISO:", MB_OK);
return "0";
}
}
}
}else{
return "-1";
}
}
如果我使用“返回文本;” 然后程序返回一个带有“LIMG”文本的字符串,但是当我尝试与字符串进行比较时,我得到的总是错误的。我尝试过:text == "LIMG"、text == LIMGText(包含 "LIMG" 的字符变量)和 strncmp,并且总是得到相同的结果。
在此先感谢,也许是愚蠢的,但我在 cpp 中太新了;)