ошибка indy external lazarus 0.9.30.4 win
Модератор: Модераторы
-
Ivan_Master
- незнакомец
- Сообщения: 6
- Зарегистрирован: 16.06.2011 12:27:14
ошибка indy external lazarus 0.9.30.4 win
При добавлении любого компонента indy в проект и отладка пустого проекта с indy lazarus 0.9.30.4 win32 возникает ошибка исполнения external, хотя компилируется нормально.
-
postscripter
- новенький
- Сообщения: 24
- Зарегистрирован: 31.05.2012 20:22:01
Re: ошибка indy external lazarus 0.9.30.4 win
У всех, походу... в модуле id_global такой текст:
Может стереть это место к чертям?? Ау, спецы! Ничего не сломается? Что за именованные потоки такие, что за зверь??? И как это можно дать им имя с помощью RaiseException ? И зачем? Для красоты?
Добавлено спустя 5 минут 3 секунды:
А, сам нашёл...
Код: Выделить всё
procedure SetThreadName(const AName: string);
...
try
// This is a wierdo Windows way to pass the info in
RaiseException($406D1388, 0, SizeOf(LThreadNameInfo) div SizeOf(LongWord), PDWord(@LThreadNameInfo));
except end;
...
Может стереть это место к чертям?? Ау, спецы! Ничего не сломается? Что за именованные потоки такие, что за зверь??? И как это можно дать им имя с помощью RaiseException ? И зачем? Для красоты?
Добавлено спустя 5 минут 3 секунды:
А, сам нашёл...
That is a requirement of debuggers. $406D1388 is a special-case exception code that tells the debugger what the name of the calling thread is so it can be cached for display purposes. There is no way to raise $406D1388 other than by calling RaiseException() directly. This technique for naming threads was introduced by Microsoft, and is used by both Microsoft and CodeGear debuggers:
How to: Set a Thread Name in Native Code
msdn.microsoft.com/en-us/library/xcb2z8hs.aspx
Re: ошибка indy external lazarus 0.9.30.4 win
Такая же проблема. Lazarus 1.8.2. Как решить? Как задать имя потока? Пробовал SetThreadName('XCXCXC'); в инициализации в модулях. Всё равно эта ошибка.
