Попробово так, результат аналогичен: когда файл не уникоде все нормально (цикл while выполняется верное количесто раз), если уникоде — бяка и цикл while — один раз выполняется
FILE *file;
wstring wstr_FileName = FileNamePrm;
wchar_t load_string[100];
wchar_t wchar_FileName[MAX_PATH];
TCHAR w_Symb;
_tcscpy(wchar_FileName, wstr_FileName.c_str());
if ((file = _tfopen(wchar_FileName,_T("r")))!=NULL)
{
while (_fgetts( load_string, 100 , file )!=NULL)
{
w_Symb = load_string[0];
// тут еще кой чего будет
}
fclose(file);
}