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