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

Вниз

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

 
Orange Lim ©   (2003-08-18 09:55) [0]

Мастера, подскажите где грабли:

1. Есть структура, например такая:

PData = ^TData;
TData = record
Status: Byte;
dwSize: Cardinal;
Source: String;
end;

var
Data: TData;


2. Создаю новый поток

...
h := BeginThread(nil, 0, ThreadProc, @Data, 0, IdTh);
...


Но при обращении к элементам структуры, переданной через указатель, вылетает с ошибкой Access Violation.
Структура и функции объявлены в одном модуле.

А функция например такая:

function ThreadProc(P: Pointer): Integer;
begin
PData(P^).dwSize := 0;
end;


 
han_malign ©   (2003-08-18 10:01) [1]

либо TData(P^), либо PData(P )^, но уж никак не подругому...


 
Orange Lim ©   (2003-08-18 10:20) [2]

Хорошо подметил :-))


 
panov ©   (2003-08-18 11:17) [3]

>Orange Lim © (18.08.03 09:55)

function ThreadProc(P: Pointer): Integer; stdcall;


 
panov ©   (2003-08-18 11:18) [4]

Сорри, это для CreateThread требуется...



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

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

Наверх




Память: 0.47 MB
Время: 0.016 c
1-1437
Vt
2003-08-19 04:20
2003.09.01
Какой ListView виден


14-1570
Дремучий
2003-08-11 15:29
2003.09.01
Нужны учебники в електронном виде!


1-1371
Alex-21
2003-08-12 19:48
2003.09.01
TRxRichEdit


1-1497
ossa
2003-08-18 08:41
2003.09.01
Подскажите как из 2-го модуля вывести в 1-м в Label текст.


1-1396
Zorik
2003-08-19 16:11
2003.09.01
как подключить dllки с произвольной папки