バイナリ ファイルの文字列を 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」テキストを含む文字列を返しますが、文字列と比較しようとすると、常にfalseになります。text == "LIMG"、text == LIMGText ("LIMG" を含む char 変数)、および strncmp を試してみましたが、常に同じ結果が得られます。
前もって感謝します、多分ばかげているかもしれませんが、私はcppでは新しすぎます;)