Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как корректно передать строку(string, PChar) в DLL


Автор: kemper 10.7.2003, 14:25
Я хочу передать имя файла(тип TFileName, string, PChar это не важно) в процедуру DLL.

Я делаю следующее:
в основной программе
Код

          var
          conv: procedure(var l: ultype; fi : PChar);stdcall;
        ...
        LibHandle := LoadLibrary(PChar("MyDLL.dll"));
         if LibHandle >= 32 then
           begin
             @conv := GetProcAddress(LibHandle,"readfield");
             if addr(conv) <> nil then begin
                 ShowMessage(PChar(DateiFile));
                 conv(ResultMatrix, PChar(DateiFile));
               end
          ...


в DLL
Код

procedure readfield(var u1:ultype; fiName:PChar);
var
 FileName : string;
begin
   FileName := StrPas(fiName);
   ShowMessage(fiName);
   ShowMessage(FileName);
   AssignFile(fi, FileName);
....


в ShowMessage основной программы я вижу нормальное имя файла, а в DLL уже какую то ерунду.

Заранее благодарен

Автор: <Spawn> 10.7.2003, 15:37
а где у тебя stdcall после прцедуры в ДЛЛ? (procedure readfield(var u1:ultype; fiName:PChar);stdcall)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)