Как в 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
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1