Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Sfat achizitionare laptop gaming

Telefonul Oppo a74 mi-a blocat ca...

A inviat Mudava

Import china alibaba
 Facultate

Vouchere de vacanta

Cand One United nu mai vand isi v...

Mandolina feliat legume
 Atestat consilier de siguranta

alarma auto Autowatch 346 RLI

Ce se intampla cu actualii tineri...

Descifrare reteta
 Zapp fix

Rulment pt diferential 4motion

Lipire filtru la baterie ikea

Meserias nu mai vine sa termine l...
 

Articol - Visual C++ - MFC Extension DLL

- - - - -
  • Please log in to reply
No replies to this topic

#1
cretze

cretze

    Veteran

  • Grup: Members
  • Posts: 1,129
  • Înscris: 28.11.2001
... deoarece am vazut ca mai sunt astfel de probleme, si cum nimeni nu se naste invatat, m-am gandit sa prezint putin mai detaliat modul in care se creeaza un MFC Extension DLL precum si modul in care acesta se apeleaza de catre un alt program ... pentru asta am realizat urmatoarele exemple:
- TestMFCDLL - care este un proiect Dialog Based
- MyMFCDLL - care este un proiect MFC AppWizard(dll)
... fiecare proiect se va gasi intr-un director cu acelasi nume ca si proiectul respectiv; in plus, pe langa cele doua directoare amintite, vom mai creea inca unul, sa spunem run care va fi folosit ca detinatie pentru rezultatele compilarii celor doua proiecte ...
... pentru inceput vom creea proiectul TestMFCDLL care, dupa cum am amintit, este un proiect de tipul Dialog Based ... la creerea proiectului vom lasa setarile implicite pe care le ofera MFC AppWizard(exe) ... pe dialogul principal al aplicatiei vom adauga un buton cu ID-ul IDC_BUTTON_TEST iar mesajul BN_CLICKED al acestuia va fi tratat de catre handler-ul OnButtonTest ... acest buton va fi folosit pentru afisarea unui alt dialog, dialog care se va gasi intr-un MFC Extension DLL ... pentru aceasta trebuie insa sa realizam acest DLL ...
... pentru a creea proiectul MyMFCDLL vom folosi wizard-ul MFC AppWizard(dll); in al doilea pas oferit de acesta, in plus fata de optiunile pe care acesta ni le propune, vom fi atenti sa bifam optiunea MFC Extension DLL( using shared MFC DLL ) dupa care vom apasa butonul Finish... in acest moment proiectul nostru este gata ... pentru o mai buna vizualizare si usurinta in lucrul cu cele doua proiecte, am ales ca acest din urma proiect sa-l includ in workspace-ul primului proiect ... urmatorul pas este sa realizam un nou dialog in cadrul acestui DLL ... acest lucru se realizeaza exact la fel ca in orice proiect MFC; din acest motiv nu voi intra in detalii ... dupa ce am realizat acest nou dialog, sa-l numim CDialogFromDLL urmatorul pas este sa-l facem vizibil si in afara DLL-ului ... pentru a nu complica problema, vom folosi macro-ul AFX_EXT_CLASS; acesta ne asigura ca respectiva clasa poate fi apelata din afara DLL-ului ... in acesta moment cele doua proiecte sunt gata de a lucra impreuna; nu ne mai ramane decat sa realizam cateva setari care vor fi facute din meniul Project->Settings ( setarile vor fi facute doar pentru versiunea de Debug; pentru cea de Release se fac exact aceeasi pasi ):
1. in primul rand vom seta ca output-ul celor doua compilari sa fie redirectat spre directorul run atat pentru versiunea de Debug cat si pentu versiunea de Release, fiecare intr-un subdirector asociat ... astfel:
* pt TestMFCDLL: in tab-ul General
- Intermediate files: ..runDebug
- Output files: ..runDebug

* pt MyMFCDLL: in tab-ul General
- Intermediate files: ..runDebug
- Output files: ..runDebug

... in acest moment output-ul celor doua proiecte se gaseste in acelasi director si anume runDebug
2. al doilea pas se refera doar la proiectul TestMFCDLL si consta in adaugarea referintelor necesare pentru a lucra cu DLL-ul nostru ... pentru aceasta vom realiza urmatoarele:
- in tab-ul C/C++ vom alege din primul combo box optiunea Preprocessor ... deoarece tb sa includem fisierul de definifinitie a dialogului din DLL tb sa adaugam calea spre acest header, astfel: ... la Additional include directories vom specifica directorul proiectului MyMFCDLL si anume ..MyMFCDLL ... astfel, header-ul DialogFromDLL.h va putea fi inclus in acest proiect ca orice alt header definit in cadrul sau ...
- in tab-ul Link vom adauga o noua librarie pentru linkeditare si anume MyMFCDLL.lib ... aceasta va fi specificata la Object/Library module
... a acest moment proiectul TestMFCDLL referentiaza in mod corect proiectul MyMFCDLL
3. acest din urma pas reprezinta practic adaugarea codului care instantiaza dialogul din DLL ... pentru aceasta in cadrul handler-ului OnButtonTest vom scrie:
CDialogFromDLL dll;
dll.DoModal();

... de asemenea nu trebuie sa uitam sa includem la inceputul fisierului header-ul clasei dialog:
#include "DialogFromDLL.h";

... cam asta a fost ... compilati si rulati  :lol:

Cretze :cya:

Attached Files



Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate