六 調用動態載入 1 建立一種過程類型[如果你對過程類型的變量只是一個指針的本質清楚的話,你就知道是怎麼回事了]。如: type mypointer=procedure(form:Tform);Far;external; var Hinst:Thandle; showform:mypointer; begin Hinst:=loadlibrary('yproject_dll');//Load一個Dll,按文件名找。 showform:=getprocaddress(Hinst,'showform');//按函數名找,大小寫敏感。如果你知道自動化對象的本質就清楚了。 showform(application.mainform);//找到函數入口指針就調用。 Freelibrary(Hinst); end;
procedure TForm1.Button1Click(Sender: TObject); var Text: Pchar; begin Text := Pchar(Edit1.Text); // OpenForm(Application.MainForm);//為了調MDICHILD InputCCC(Text);//為了實驗DLL中的全局變量是否在各個應用程序間共享 end;
procedure TForm1.Button2Click(Sender: TObject); begin ShowCCC;//這裡表明Windows 32位應用程序DLL中的全局變量也是在應用程序地址空間中,16位應用程序或許不同,沒有做實驗。 end;