Как в dll передать массив строк переменной длины?
Хочу передать в dll список файлов...
Модератор: Модераторы
program Untitled;
uses Classes, Math;
procedure MyDllProcedure(St:Widestring);
external 'DLL.dll' name 'MyDllProcedure';
var S:Widestring;
i:integer;
tmpStr: TStringList;
begin
tmpStr := TStringList.Create;
for i :=0 to 10 do tmpStr.Add(IntToStr(i));
S := tmpStr.Text;
tmpStr.Free;
MyDllProcedure(S);
end.
library Untitled;
uses Windows, Classes, SysUtils;
procedure MyDllProcedure(AStr:WideString); export;
var i:integer;
tmpStr: TStringList;
begin
tmpStr := TStringList.Create;
tmpStr.Text := AStr;
for i :=0 to tmpStr.Count-1 do
MessageBox (0, PChar(tmpStr.Strings[i]) , 'URA!!!', 0 + MB_ICONEXCLAMATION);
tmpStr.Free;
end;
exports
MyDllProcedure;
begin
end.
Лучше бы тогда уж передавать PWideChar - во избежание недоразумений.
Что такое PWideChar? Для чего?
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10