Visual studio - win programy CLR

Zuffa Jan ZuffaJ na cgc.sk
Pondělí Únor 21 07:28:12 CET 2022


Dobre rano,

Ten WIN32 v preprocesore znamena, ze ho vidi kompiler pre  vsetky headery a cpp subory.
Inak by ho bolo potrebne do suborov umiestnit tam, kde ho kompiler uvidi vzdy ked treba
Spravne nadefinovany projekt so spravne nadefinovanymi headermi to da v jednom mieste.
Ked sa neda, pouzivam nieco ako global.h a umiestnim ho vsade kam treba

j.

-----Original Message-----
From: Hw-list <hw-list-bounces na list.hw.cz> On Behalf Of Pavel Hudecek
Sent: Sunday, February 20, 2022 3:14 PM
To: hw-list na list.hw.cz
Subject: Re: Visual studio - win programy CLR

Do QT jsem pro porovnání před chvílí koukal:
main.cpp - jen vyvolání inicializace
mainwindow.h - deklarace okna a prvků v něm mainwindow.cpp - kód ke všemu co je v okně

A ještě není problém to přeložit pro win i linux.

Ale spousta zákazníků používá MSVC a tak jsem chtěl udělat nějaké ukázky v něm.
Napřed jsem narazil na tu nedávno dotazovanou podivnost, že jsem v nastavení projektu musel přidat globání definici WIN32, aby program spolupracoval s naší LIB+DLL, které jsou 64b. Přitom v QT to šlo přeložit všemi metodami, včetně užití překladače z MSVC a žádná taková globální definice tam není. Stejně tak cmake z komandlajny, taky úspěšně přeloží za použití MSVC, o WIN32 nikde nic. :-)

No a teď tahle podivnost s H. Rychlost překladu není problém, je to malý prográmek co pustí detektor částic a výsledek zobrazí v imageboxu. Ale tak nějak si říkám, že k zařízením v ceně 1-100kE by mohly být ukázky psané méně podivně:-)

PH

Dne 20.02.2022 v 14:45 Miroslav Mraz napsal(a):
> Qt to dělá stejně - kód GUI z formuláře je generován do hlavičky. 
> Obecně v C++ se C-čkové pravidlo, že hlavička by neměla obsahovat 
> výkonný kód dost ignoruje. Pro jednořádkové metody, které se defaultně 
> inlinují není celkem divu, pokud používáte šablony tak to ani jinak 
> moc dobře nejde, ale dneska už se to dostalo do stádia, kdy soubor o 
> pár řádcích kompilujete desítky sekund, protože vše je v includnutých 
> hlavičkách. Například API pro LLVM, clang. Prostě to tak je, většinou 
> za to můžou právě ty šablony, mládež píše všechno v šablonách. Je to 
> hnusné a nečitelné, ale u velkých projektů zřejmě méně pracné.
> Qt se mi líbilo právě proto, že se snaží zachovat původní koncepci 
> dědičnosti v C++ a šablony využívá jen v míře nezbytně nutné. Připadá 
> mi to čistší a čitelnější.
>
> Mrazík
>
> Dne 20. 02. 22 v 14:06 Jaroslav Buchta napsal(a):
>> Sveho casu jsem pouzival ve VS  C++ MFC pro GUI. Ale nebylo to ve 
>> verzi zadarmo, nevim jak ted. Na formulare docela pouzitelne. Uz mam 
>> ale osypky, kdyz ty stare aplikace musim nejak upravovat.
>> Projekt C++ (docela rozsahly), kde byl prakticky cely kod v 
>> hlavickach jsem pred nejakym casem prevzal a toho, kdo to spachal 
>> jsem mel chut zabit. Samozrejme po kazde drobne zmene to kompiluje 
>> strasne dlouho vsechno misto jednoho specifickeho cpp...
>>
>> Dne 20.02.2022 v 13:28 Zuffa Jan napsal(a):
>>> DD,
>>>
>>> Vola sa to odborne Code in header a neviem o nikom, kto by to 
>>> pouzival okrem definice v triedach.
>>> Ale som len obcasny programator a nezivim sa tym takze mozem sa mylit
>>> Pre VS a c++ pouzivam resource editor. A ano vsetko sa tu pise rucne.
>>> Minule som cital, ze CLR a C# a dalsie (plati aj pre python a ine 
>>> high level jazyky) boli
>>> vymyslene koli nedostatku programatorov. Teda tych "hornych 10,000"
>>>
>>>
>>> j.
>>> ________________________________________
>>> From: Hw-list [hw-list-bounces na list.hw.cz] on behalf of Pavel 
>>> Hudeček [edizon na seznam.cz]
>>> Sent: Saturday, February 19, 2022 2:12 PM
>>> To: HW-list
>>> Subject: Visual studio - win programy CLR
>>>
>>> Dobrý den všem,
>>> Ve Visual studiu je všechno normálně vizuální, ve VB, nebo C# se
>>> defaulně objeví editor grafiky oken a po dobleclicku na prvek lze 
>>> dopsat
>>> kód, který má spouštět. Stejně jako třeba v Delphi, nebo Builderu, 
>>> nebo QT.
>>>
>>> Ale když chci ve VS udělat win program v C++, neví to jako v ostatních
>>> VS věcech, ani jako Builderu, či QT.
>>>
>>> Nedávno jsem to potřeboval, tak jsem zapátral a našel:
>>> 1. Se musí doinsalovat podpora CLR, čili to z default instalace ani 
>>> nejde
>>> 2. V novém projektu se  musí dopsat nějaký kód, aby to vůbec mohlo 
>>> fungovat.
>>>
>>> Postup např. zde http://www.cs.csi.cuny.edu/~zelikovi/csc211/GUI1.pdf
>>>
>>> Poněkud mě překvapilo, že tam kód obsluhy ovládacích prvků píšou do
>>> form.h a ne do form.cpp
>>>
>>> Je to jenom lenost autora ukázky, nebo se to vážě má dělat takhle?
>>>
>>> PH
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list