Ага, вот тут, скорее всего, собака и порылась.
Первое, что смущает в твоем коде:
Код:
1 | ReadFile(F, pRes^, dwResSize, dwRead, nil );
|
Зачем разименовывать указатель на буфер? PChar - это уже указатель. Убери "крышку".
Далее, если не поможет, начинаем разбираться с Unicode.
Для начала попробуй так:
Код:
1 | ShowMessage( AnsiString (FileOpenText( 'loginusers.txt' )));
|
А еще лучше, наверное, сделать так:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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? Стандарных функций паскаля недостаточно?