Ага, вот тут, скорее всего, собака и порылась.
Первое, что смущает в твоем коде:
Код:
ReadFile(F, pRes^, dwResSize, dwRead, nil);
Зачем разименовывать указатель на буфер? PChar - это уже указатель. Убери "крышку".
Далее, если не поможет, начинаем разбираться с Unicode.
Для начала попробуй так:
Код:
ShowMessage(AnsiString(FileOpenText('loginusers.txt')));
А еще лучше, наверное, сделать так:
Код:
function FileOpenText(strFile:PChar):String;
var
f:thandle;
dwResSize, dwRead:DWORD;
pRes: AnsiString;
begin
result:='';
F:=CreateFile(pchar(strFile), GENERIC_READ, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if F=INVALID_HANDLE_VALUE then exit;
dwResSize:=GetFileSize(F, nil);
SetLength(pRes,dwResSize);
ReadFile(F, pRes[1], dwResSize, dwRead, nil);
CloseHandle(F);
Result:=pRes;
end;
....
ShowMessage(FileOpenText('loginusers.txt'));
Кстати, вопрос. А зачем надо это делать через API? Стандарных функций паскаля недостаточно?