바이너리 파일의 문자열과 char 파일을 비교하는 데 문제가있어 해결 방법을 모르겠습니다 (저는 cpp에서 매우 새로움).바이너리 문자열과 문자열 비교 VC++
나는 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"텍스트와 함께 문자열을 반환하지만 문자열과 비교하려고하면 alwais false가됩니다. 나는 시도했다 : text == "LIMG", text == LIMGText ("LIMG"를 포함하는 char 변수), strncmp 그리고 항상 같은 결과를 얻는다.
'strncmp'는 일치하는 것이 있으면 0을 반환합니다. 코드는'(0 == strncmp (text, "LIMG", 3))'이어야합니까? – suspectus