Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.09;
Скачать: CL | DM;

Вниз

Access violation   Найти похожие ветки 

 
TCrash ©   (2003-05-30 00:07) [0]

практически вся прога - ниже
procedure TForm1.FormCreate(Sender: TObject);
var
s:dword;
b:pchar;
begin
GetUserName(b,s);
Edit1.Text:=string(b);
end;

отрабатывает нормально, но при выходе из формы вываливает сабж
не пойму где грабли.


 
Юрий Зотов ©   (2003-05-30 00:58) [1]

Вообще, под строку неплохо было бы выделить память и проинициализировать указатель b ее адресом.


 
TCrash ©   (2003-05-30 01:07) [2]

В windows.pas имеем следующее описание :

function GetUserName(lpBuffer: PChar; var nSize: DWORD): BOOL; stdcall;

разве для PChar, который возвращает функция, требуется описание ?
Да и потом, имя пользователя возвращается правильное и без лишних символов.


 
sniknik ©   (2003-05-30 01:53) [3]

в этом случае обязательно (память выделить). в хелпе читаем

lpBuffer
Points to the buffer to receive the null-terminated string containing the user"s logon name. If this buffer is not large enough to contain the entire user name, the function fails.

т.е. ожидается указатель на буфер куда бедет писать. и если не влезет по размеру, функция не сработает. а пишет он у тебя сейчас в случайное место. (в код на выходе)


 
Юрий Зотов ©   (2003-05-30 06:05) [4]

> разве для PChar, который возвращает функция, требуется
> описание

1. Разве эта функция возвращает PChar?
2. Описания не требуется. А выделение памяти требуется.



Страницы: 1 вся ветка

Текущий архив: 2003.06.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
14-26678
Song
2003-05-24 10:29
2003.06.09
http://coolbaranoff.narod.ru/ :))


14-26751
Мазут Береговой Рюрикович
2003-05-22 11:43
2003.06.09
Как заставить MS SQL Server 2000 понимать русский шрифт в данных?


7-26797
Islander
2003-03-31 09:04
2003.06.09
Выключить компьютер в XP


14-26672
k-man
2003-05-24 09:54
2003.06.09
Glut 3.7


6-26646
Дмитрий К.К.
2003-04-07 11:59
2003.06.09
Поиск файла в Интернете