Search  
Friday, May 25, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Clase - VCX si PRG  Creare DLL...
 Creare DLL
 
 4/15/2009 3:49:14 PM
User is offlinegavroche
82 posts


Creare DLL
 (N/A)
Salutare.
Am o functie pe care o apelez cu un parametru.
Vreau sa introduc functia respectiva intr-un DLL (sa construiesc un DLL care sa o contina)
Apoi vreau sa includ acest DLL in alt proiect si sa imi pot apela functia anterior creata.
 4/15/2009 6:43:37 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Creare DLL
 (Romania)

Creezi un proiect in care adaugi un main.prg. In main.prg scrii un cod similar cu cel de mai jos (codul dat ca exemplu este testat si functioneaza):

Define Class ClasaProprie As Session Olepublic
   Function
MyFunction (Parametru1, Parametru2
)
      Return Val(Transform(Parametru1)) + Val(Transform(Parametru2
))
   EndFunc
EndDefine

Compilezi proiectul ca Multithreaded COM Server (e ultima optiune din lista, in fereastra Build). Numele cu care salvezi DLL-ul este important - citeste mai jos:

Ca sa folosesti dll-ul procedezi astfel:

myObj = CreateObject("NumeCuCareAiSalvatDLL.ClasaProprie")
? myOBj.MyFunction(par1, par2)

Dll-urile create cu FoxPro se comporta trebuie inregistrate in sistemul destinatie, cu Regsvr32 numedll.


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 4/15/2009 11:26:46 PM
User is offlinegavroche
82 posts


Re: Creare DLL
 (N/A)
Foarte Multumesc!
A mers ca uns. Daca tot ai amintit de "Multithreaded" e posibil sa am 2 functii iar fiecare sa ruleze pe un thread (am procesor dual core) si as vrea ca anumite functii sa ruleze pe un nucleu iar altele pe altul.
E posibil sa rulez de exemplu 2 comenzi SELECT SQL simultan? 1 pe un thread alta pe celalalt?

 4/16/2009 11:41:32 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Creare DLL
 (Romania)
Nu - multithreading-ul nu este suportat nativ in VFP. Am vazut pe net pe undeva o chestie care iti dadea voie sa faci multithreading, dar practic lansai alt proces care rula independent si era folosit un mecanism extern pentru callback catre thread-ul parinte. Nu stiu cat de sigura e treaba - personal n-an folosit-o niciodata. Mi se pare ca s-a discutat si pe forum despre asta.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 7/6/2009 12:41:50 PM
User is offlineHorHe
116 posts
5th


Re: Creare DLL
 (N/A)

De ce nu merge si in VFP6 ? Primesc eroare de sintaxa datorita cuvantului "Session".
Am reusit sa rezolv problema intr-un fel, cu o clasa "Session" goala. Totusi trebuie sa fi gresit undeva, pentru ca nu mi se pare normal.

Ceva sugestii ?
 7/6/2009 12:47:30 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Creare DLL
 (N/A)
Clasa Session a fost introdusa in Visual FoxPro 6 SP3.

Cauta la microsoft.com Visual Studio 6.0 Service Pack 3, da-l jos si instaleaza-l.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 7/6/2009 12:58:14 PM
User is offlineHorHe
116 posts
5th


Re: Creare DLL
 (N/A) Modified By HorHe  on 7/6/2009 1:01:10 PM)
* in main.prg
Define Class ClasaProprie As Custom Olepublic
   Function MyFunction (Parametru1, Parametru2)
      Return Val(Transform(Parametru1)) + Val(Transform(Parametru2))
   EndFunc
EndDefine

* dupa compilare si salvare ca test.dll
myObj = CreateObject("test.ClasaProprie")
? myOBj.MyFunction(67, 78)

 Merge OK, acum nu stiu care sa spun care este diferenta.
 Iarasi nu stiu sigur daca mai trebuie inregistrata clasa, dar sigur merge daca este in acelasi director cu executabilul.

 7/6/2009 1:38:33 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Creare DLL
 (N/A)
1. Diferenta este dupa "As". In codul meu este Session, in al tau e Custom => discutam despre clase diferite.
2. Trebuie inregistrat dll-ul ala. In calculatorul TAU nu trebuie, pentru ca a fost inregistrat automat in cursul procesului de build. Du dll-ul pe alt calculator si-o sa vezi.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 7/20/2009 12:25:27 PM
User is offlineHorHe
116 posts
5th


Re: Creare DLL
 (N/A) Modified By HorHe  on 7/20/2009 12:27:33 PM)

mare dreptate ai, ideea este ca am reusit sa fac DLL-ul functionabil pe alte calculatoare, CTRL+F cu test.ClasaProprie si MyFunction in registri apoi export ... se pare ca merge dar putin cam complicat ... :))

PS: cand am zis de diferenta, ma refeream la chestia cu inregistratul, doar ca nu stiam asta (am observat si eu ca in cod este diferenta dupa AS)
 7/20/2009 12:48:38 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Creare DLL
 (N/A) Modified By Grigore Dolghin  on 7/20/2009 12:48:50 PM)
Regsvr32.exe nume.dll

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 7/20/2009 3:38:26 PM
User is offlineHorHe
116 posts
5th


Re: Creare DLL
 (N/A)

pot folosi un dll facut in fox cu sintaxa:
declare integer [MyFunction] in [Test] [integer], [integer]
sau ceva de genul ?


 7/21/2009 9:32:23 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Creare DLL
 (N/A)
Nu.
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 7/21/2009 5:12:36 PM
User is offlinedni
420 posts
2nd


Re: Creare DLL
 (N/A)

...daca ai timp te poti uita la (pentru "Multithreaded") :

http://blogs.msdn.com/calvin_hsia/archive/2006/05/11/595562.aspx

http://mtmyvfp.codeplex.com/

 7/29/2009 10:58:50 AM
User is offlineHorHe
116 posts
5th


Re: Creare DLL
 (N/A)
 Grigore Dolghin wrote
Nu.


Stiam ca voi fi nevoit sa invat si C++
  Visual FoxPro  Clase - VCX si PRG  Creare DLL...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement