Вопрос № 107919: Для проверки какой пользователь запустил программу хочу использовать API функцию
BOLL GetUserName(
LPTSTR lpBuffer, // address of name buffer
LPDWORD nSize // address of size of name buffer
);
никак не могу
справиться ...
Вопрос № 107.919
Для проверки какой пользователь запустил программу хочу использовать API функцию
BOLL GetUserName(
LPTSTR lpBuffer, // address of name buffer
LPDWORD nSize // address of size of name buffer
);
никак не могу
справиться с этой функцией в программе
R_bool:=GetUserName(AST^,AW^);
Все время получаю ошибку "Е2033 Types of actual and formal var parameters
must be identical". Типы фактических и формальных параметров должны
совпадать.
Отвечает: PavelGM
Здравствуйте, Кулешов Владимир Григорьевич!
Ну так, вам стоило бы посмотреть как объявлена данная функция в Дельфи и все стало бы ясно:
function GetUserName(lpBuffer: PChar; var nSize: DWORD): BOOL; stdcall;
В данном случае у вас проблема со вторым параметром - он должен быть типа DWORD а не ссылкой на WORD. Имейте ввиду что DWORD это не WORD (4 байта вместо 2).
P.S. С AST вообще вы перемудрили [ИМХО] (почему бы не использовать переменную Buf : array [0..255] of Char и ссылку на нее PChar(@Buf) или вообще String - его тоже легко к PChar преобразовать), но здесь все по крайней мере с виду корректно.
Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 04.11.2007, 19:15