DELPHI ПОТОК В DLL
Для работы с потоками в динамических библиотеках (DLL) в Delphi используется механизм threadvar. Threadvar позволяет создавать переменные, которые будут являться единственными экземплярами для каждого потока.Пример использования механизма threadvar для работы с потоками в DLL:
library MyDLL;uses SysUtils, Classes;{$R *.res}var myVar: threadvar Integer;function GetVal: Integer; stdcall;begin if myVar = 0 then myVar := Random(100); Result := myVar;end;procedure SetVal(AValue: Integer); stdcall;begin myVar := AValue;end;exports GetVal, SetVal;beginend.
В данном примере создается переменная myVar с помощью механизма threadvar. Функция GetVal возвращает значение myVar, при этом если значение еще не было установлено для данного потока, оно будет сгенерировано случайным образом. Процедура SetVal устанавливает значение myVar для текущего потока.Эту DLL можно использовать из основного проекта на Delphi, вызывая экспортируемые функции GetVal и SetVal:function GetVal: Integer; stdcall; external 'MyDLL.dll';procedure SetVal(AValue: Integer); stdcall; external 'MyDLL.dll';procedure TForm1.Button1Click(Sender: TObject);begin Memo1.Lines.Add(Format('Value: %d', [GetVal])); SetVal(42); Memo1.Lines.Add(Format('Value: %d', [GetVal]));end;
В данном примере основной проект вызывает функцию GetVal из DLL, после чего устанавливает значение myVar в 42 с помощью процедуры SetVal и вызывает функцию GetVal снова. В результате первый вызов вернет случайно сгенерированное значение, а второй вызов вернет 42.
DLL programming - Delphi #27
How to compile dll from source code?
delphi-hlp.ru is missing windows 7,8,9,10 - Dll is missing - Audacity Dll File!
How to Call .Net DLL from Delphi - Delphi ile .Net Dll Çağırma
C# : NUnit failed to load DLL
Создание DLL [Delphi]
General Programming Knowldge(Create Delphi Dll and Call it from C#) شرح
Delphi XE7 Поток и синхронизация
Form in a DLL file Delphi tutorials
How to Fix All .DLL Files Missing Error In Windows 10/8/7 (100% Works)