VFP ile win32 DLL olusturamazsin. Ancak COM DLL olusturabilirsin (multithreaded ya da single). DLL'in kullanici arayuzu olamaz (VFP6'dan beri). Olusturmak basit:
define class myDLLRoutines as session OLEPUBLIC
DataSession = 2
DataPath = "C:\PROGRAM FILES\MICROSOFT VISUAL FOXPRO 9\SAMPLES\data"
Procedure GetCustomerAddress(tcID)
local lcRetVal
select * from (addbs(this.DataPath)+'customer') ;
where cust_id == upper(m.tcID) ;
into cursor crsCustomer
lcRetVal = crsCustomer.Address
use in 'customer'
use in 'crsCustomer'
return m.lcRetval
endproc
enddefine
Sadece yukaridaki kodun oldugu bir projeden MTDLL yaratabilirsin. Cagirilmasi (dll adi myDLL ise):
o = NewObject("myDLL.myDLLRoutines")
? o.GetCustomerAddress('ALFKI')
seklinde.
DLL'ler in-process server'lar ve faydali olduklari yerler cok. Bunun yaninda out-of-process win32 exe yaratabilirsin (normal exe yarattigin gibi). Ancak bu exenin icine sadece belli classlarini koyup kullanici arayuzu de kullanabilirsin.
Hangisini kullanirsan kullan once yardim dosyasindaki ilgili bolumleri "Automation server", "Advanced COM","Selecting Process Types" vs bolumlerin tamamini okuyup anlaman lazim. Konu cok uzun, eger okuyup anlarsan VFP'nin yapabildikleri, dusundugunun cok otesinde olabilir.