As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Intrebari legate de programarea cu biblioteci precum MFC, ATL, WTL si GDI+.
mesajflaviu
Membru++
Membru++
Posts: 687
Joined: 10 Sep 2008, 21:40
Judet: Cluj

As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by mesajflaviu » 15 Oct 2009, 10:44

Se poate crea un proiect VC2008 ( pentru a avea statusbar , butoane , etc. cu 'look' mai bun ) si apoi sa il dezvolt in VC6 ? Ceva in genul aplicatiei LogExpert



User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by Marius Bancila » 15 Oct 2009, 14:35

Nu. Decat daca creezi apoi un proiect in VC6 si adauga manual toate fisierele, resursele, etc.

De ce vrei sa faci asa ceva?
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

mesajflaviu
Membru++
Membru++
Posts: 687
Joined: 10 Sep 2008, 21:40
Judet: Cluj

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by mesajflaviu » 15 Oct 2009, 16:25

De ce vrei sa faci asa ceva?
Proiectul este de tip MDI , pe langa MainFrame si ChidFrame-ul va avea un statusbar propriu , in VC2008 aceste statusbar-uri sant delimitate mai frumos , apoi butoanele create in VC2008 au stilul sistemului de operare folosit si tema aleasa , ceea ce la VC6 nu am vazut .
O sa incerc sa adaug manual fisiere generate in VC2008 intr-un proiect VC6 ...

User avatar
Silviu Ardelean
Senior
Senior
Posts: 1175
Joined: 12 Jul 2007, 09:22
Judet: Timiş
Location: Timisoara
Contact:

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by Silviu Ardelean » 15 Oct 2009, 16:32

Controlele respective au aspectul celor din sistemul de operare pentru ca ti-au fost incluse prin manifest.
Din experienta mea, conceptul de manitest nu l-am intalnit pe VC++ 6.0 ci doar la versiunile ulterioare.
Poti incerca sa-ti creezi un proiect clasic si in VC++ 6.0 si apoi sa incerci sa creezi si utilizezi un manifest.

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by Marius Bancila » 15 Oct 2009, 17:17

mesajflaviu wrote:Proiectul este de tip MDI , pe langa MainFrame si ChidFrame-ul va avea un statusbar propriu , in VC2008 aceste statusbar-uri sant delimitate mai frumos , apoi butoanele create in VC2008 au stilul sistemului de operare folosit si tema aleasa , ceea ce la VC6 nu am vazut .
O sa incerc sa adaug manual fisiere generate in VC2008 intr-un proiect VC6 ...
Ha, pai unele lucruri tin si de versiunea de MFC. Daca tu vrei ceva din MFC 8.0 dar compilezi cu MFC 4.2, atunci de unde?
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

mesajflaviu
Membru++
Membru++
Posts: 687
Joined: 10 Sep 2008, 21:40
Judet: Cluj

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by mesajflaviu » 15 Oct 2009, 19:53

Nu Marius , eu vreau numai stil dependent de stilul sistemului de operare pe care ruleaza aplicatia , dar acum am priceput cum se rezolva ... Multumesc pentru indrumari !

User avatar
MrSmersh
Microsoft MVP
Microsoft MVP
Posts: 289
Joined: 20 Jul 2007, 10:18
Location: Timisoara
Contact:

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by MrSmersh » 15 Oct 2009, 20:42

Silviu Ardelean wrote:Controlele respective au aspectul celor din sistemul de operare pentru ca ti-au fost incluse prin manifest.
Din experienta mea, conceptul de manitest nu l-am intalnit pe VC++ 6.0 ci doar la versiunile ulterioare.
Poti incerca sa-ti creezi un proiect clasic si in VC++ 6.0 si apoi sa incerci sa creezi si utilizezi un manifest.
Manifestul, are mai multa legatura cu OS decit cu mediul de dezvoltare, dar adevarat unele medii de dezvoltare stiu de el. Si la incercarea de a folosi un manifest la un proiect de 6, da merge, dar e un "smeckerie" :yes: trebuie schimbat fontul din dialoage, nu mai stiu exact cu care trebuie vazut in o resursa generata de 2003 sau better... O saptamina am stat pe asta, cim am trecut de pe 6 si pe XP :biggrin:

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by Ovidiu Cucu » 15 Oct 2009, 21:40

"Smeckeriile" pentru "manifest" in VS 6.0 sunt foarte simple si sunt de vreo trei feluri.
Una dintre ele, care sa mearga in VS6.0 dar nu deranjeaza versiunile mai noi, se poate gasi in
\LOGEXPERT\src\lexpbrowser\res\lexpbrowser.rc2
si
\LOGEXPERT\src\lexpbrowser\Resource.h

Nici urma de "schimbat fontul din dialoage". ;)

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by Marius Bancila » 16 Oct 2009, 09:24

mesajflaviu wrote:Nu Marius , eu vreau numai stil dependent de stilul sistemului de operare pe care ruleaza aplicatia , dar acum am priceput cum se rezolva ... Multumesc pentru indrumari !
Ah, OK, n-am inteles ce vrei de fapt.
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

User avatar
MrSmersh
Microsoft MVP
Microsoft MVP
Posts: 289
Joined: 20 Jul 2007, 10:18
Location: Timisoara
Contact:

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by MrSmersh » 16 Oct 2009, 13:53

OT
Ovidiu Cucu wrote:"Smeckeriile" pentru "manifest" in VS 6.0 sunt foarte simple si sunt de vreo trei feluri.
Una dintre ele, care sa mearga in VS6.0 dar nu deranjeaza versiunile mai noi, se poate gasi in
\LOGEXPERT\src\lexpbrowser\res\lexpbrowser.rc2
si
\LOGEXPERT\src\lexpbrowser\Resource.h

Nici urma de "schimbat fontul din dialoage". ;)
Acuma poate nu stiu exact cale koser, dar stiu de problema si cum ardea si documentatie yoc ca era cind era proaspat XP am comparat rc generate si fontu era diferenta. CTRL + H si in toate 50 de proiecte din solutie am rezolvat.

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by Ovidiu Cucu » 18 Oct 2009, 13:10

MrSmersh wrote:OT
Ovidiu Cucu wrote:"Smeckeriile" pentru "manifest" in VS 6.0 sunt foarte simple si sunt de vreo trei feluri.
Una dintre ele, care sa mearga in VS6.0 dar nu deranjeaza versiunile mai noi, se poate gasi in
\LOGEXPERT\src\lexpbrowser\res\lexpbrowser.rc2
si
\LOGEXPERT\src\lexpbrowser\Resource.h

Nici urma de "schimbat fontul din dialoage". ;)
Acuma poate nu stiu exact cale koser, dar stiu de problema si cum ardea si documentatie yoc ca era cind era proaspat XP am comparat rc generate si fontu era diferenta. CTRL + H si in toate 50 de proiecte din solutie am rezolvat.
[off-topic]
Catalin, ce scula de comparare folositi? :D

[on-topic]
Intradevar, LOGEXPERT-ul are o mica buba cu "visual styles" atunci cand e build-uit cu versini mai noi decat VC6.0.
Am pornit de la VC6.0 desi am toate versiunle de VC20xx, pentru ca sa fie accesibil cat mai multor programatori fara sa fie nevoiti sa refaca soloutia de la cap in caz ca au o versiune "backward".
Dar asta e... niciodata nu e suficient timp pentru a testa toate combinatile posibile si. desi am rezolvat problema "manifestului" pe VS6, compiland cu versiuni mai noi, controalele apar tot cu "old style".

Deci, pornind de la workaround-u tau:
Am dat un replace in files si am inlocuit "MS Sans Serif" cu "MS Shell Dlg" (m-am bucurat sa fie asa de simplu. ;)).
Nici un efect, cel putin, compiland cu VS2005/2008 si ruland pe XP.
Mai departe, a sapat putin pe la manifeste apoi am comparat fisierul lexprowser.exe.intermediate.manifest din CODEXPERT cu unul generat de un proiect facut de a zero cu VS2008.
Surprize, surprize... lipsea

Code: Select all

  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='X86' publicKeyToken='6595b64144ccf1df' language='*' />
    </dependentAssembly>
  </dependency>

"Microsoft.Windows.Common-Controls" suna familiar, nu-i asa? Bingo!.. :)
N-am reusit inca sa descoper de ce nu pune VS-ul acestea la un proiect portat de pe VS6, asa ca m-am dus la campul urmator din "Project Properties" si anume "Additional
Manifest Dependiences". De aici am ajuns la optiunea de linker /MANIFESTDEPENDENCY si la urmatoarele adaugiri intr-unul din fisierele sursa prin proiectul lexbrowser:

Code: Select all

#if _MSC_VER >= 1300
#pragma comment(linker, "\"/manifestdependency:type='Win32' \
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='X86' \
publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif

Solved!
Daca stie cineva o solutie mai eleganta, care sa pastreze compatiblitatea de la VS6.0 pana la VS2010, il rog s-o spuna.

[ Later edit ]
"Ce este _MSC_VER si ce vrea ele :)" se gaseste la Codexpert FAQ: Determinare versiune Visual C++

User avatar
MrSmersh
Microsoft MVP
Microsoft MVP
Posts: 289
Joined: 20 Jul 2007, 10:18
Location: Timisoara
Contact:

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by MrSmersh » 18 Oct 2009, 20:32

Vad ca ne intelegem greu fara o bere pe masa :biggrin: .
Nu am zis ca se schimba fontul si gata tot. Trebuie pus si manifestul, si acolo se face ca la carte. In cazul nostru am facut toti pasii in 6 si toti in VC mai nou si la 6 nu era nici un efect. Si de aici trecut la vezut de ce...
Si normal ca WinDiff :biggrin:

mesajflaviu
Membru++
Membru++
Posts: 687
Joined: 10 Sep 2008, 21:40
Judet: Cluj

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by mesajflaviu » 23 Nov 2009, 11:46

Indiferent de folosirea fisierului manifest , am observat ca scroll-urile au stil vechi , pana in momentul cand pun click pe ele , apoi la orice redesenare a ferestrei stilul se modifica ca la inceput ... nu e problema mare , dar "dauneaza" aspectului general ... care sa fie explicatia pentru acest comportament ?

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by Ovidiu Cucu » 24 Nov 2009, 18:11

Am mai auzit de probema asta dar am incercat acum doate combinatiile (XP/Vista/7, VS6.0/VS2008) si nu am reusit sa reproduc.
De exemplu la
LogExpert Windows XP.gif
LogExpert Windows XP.gif (29.02 KiB) Viewed 5361 times
si
LogExpert Windows 7.gif
LogExpert Windows 7.gif (43.56 KiB) Viewed 5361 times
scorllbar-urile arata bine-mersi oricat as fatzai ferestrele.

Poate ne prindem care-i problema daca ne spui exact cu ce ai compilat si ce sistem de operare folosesti (inclusiv SP).

mesajflaviu
Membru++
Membru++
Posts: 687
Joined: 10 Sep 2008, 21:40
Judet: Cluj

Re: As putea crea un proiect VC2008 sa-l 'recunoasca' VC6 ?

Post by mesajflaviu » 24 Nov 2009, 22:29

Folosesc un sistem de operare Windows XP Professional Edition , versiunea 2002 , cu SP2 , iar compilator VC++ 6.0 . Chiar am observat ca LogExpert-ul nu are aceasta problema ... si asa cum am mai scris , comportarea asta ciudata nu cred ca tine de folosirea fisierului manifest ... :?:

Post Reply