Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Плагины в Delphi


Автор: DoZENT 7.7.2006, 22:13
В моей проге из плагина вызывается функция типа MsgBox (ParentHwnd : HWND; Msg : PChar). если плагин писан на delphi, то функция нормально так работает. Если на си или асме, то вместо Msg выдает какую-то хрень типа <<<<%5<>... Я думал, может PChar тип какой-то несовместимый, пробовал и char и PAnsiChar использовать, все равно не работает. Подскажите, pls! 

Автор: SilentRoach 7.7.2006, 23:13
попробуй не напрямую писать хэдер в процедуры через библиотеку, а сделать примерно так:

Код
type
    TProc = procedure;  // там уж как надо модифицируешь

var
  DllHandle: THandle;
  Proc: TProc;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  DllHandle := LoadLibrary('module.dll');
  if DllHandle <> 0 then
  begin
    @Proc := GetProcAddress(DllHandle, 'Название процедуры');
    if @Proc <> nil then
      Proc;
  end;
end;
   

Автор: Alexeis 7.7.2006, 23:42
DoZENT, для с++ библиотек необходимо указывать директиву stdcall - т.е. указать порядок передачи параметров 

Автор: Poseidon 8.7.2006, 01:24
Цитата(alexeis1 @  7.7.2006,  23:42 Найти цитируемый пост)
необходимо указывать директиву stdcall 
 Не дерективу а соглашение о вызовах ;)

http://vingrad.ru/DELPHI-DLP-002820 

Автор: DoZENT 8.7.2006, 11:06
Цитата

директиву stdcall

Спасибо, все работает 

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