Допустим что у вас имеется Word2(6)/Delphi1 или 32bit Word/Delphi2.
Сделайте следующее:
Declare Function StringFromDelphi Lib "c:\sample\test.dll" As String Sub MAIN mystring$ = StringFromDelphi Insert mystring$ End Sub |
library Test; (* test.dpr в c:\sample *) uses Testform in 'TESTFORM.PAS'; exports StringFromDelphi; begin end. |
unit Testform; (* testform.pas в c:\sample *) interface uses WinTypes, WinProcs, Forms, Classes, Controls, StdCtrls, SysUtils; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; function StringFromDelphi : PChar; export; {$ifdef WIN32} stdcall; {$endif} implementation {$R *.DFM} function StringFromDelphi: Pchar; var StringForWord : array[0..255] of char; begin Application.CreateForm(TForm1, Form1); Form1.ShowModal; Result:=StrPCopy(StringForWord, Form1.Button1.caption); end; procedure TForm1.Button1Click(Sender: TObject); begin close; end; end. |
В журнале PCMagazine Vol12.No22 опубликована статья о доступе к DLL из Word. Ознакомиться с ней вы можете в электронной версии журнала на веб-сайте PCMagazine.
[000190]