Sushi271 napisał(a)
Ale kurczę. To jest nieelastyczne i nieładne. I co - gdybym chciał to zrobić pod MFC, albo pod SDI albo pod Window Forms, to za każdym razem muszę wkopiować ten kod do aplikacji? Nie mam jak rozdzielić warstwy modelu i widoku? To jest trochę do kitu... Ja chcę z mojego projektu z figurami zrobić coś w rodzaju biblioteki, z której potem wystarczyłoby tylko skorzystać i tyle.
nie o to chodzi.. chodzi o to, ze mieszasz technologie "native" z "managed", a to z definicji jest proste jesli managed ma uzywac native'a, a sporo truniejsze jesli to native ma korzystac z managed. W przypadku kiedy napiszesz GUI w MFC a obliczeniowke w C++/CLI, niestety dostaniesz wlsanie ten drugi przypadek!
ale nie ma rzeczy niemozliwych, ani jedno ani drugie nie jest jakos spcjalnie niesamowicie trudne, ot trzeba sie trzymac kilku dodatkowych rzeczy i pilnowac zeby interfejs bibliotek byl przyjazny. i tyle.
Sushi271 napisał(a)
Poza tym jak próbowałem ząłączać ten "stdafx.h" to dalej się o to czepiał, być może (nie jestem pewien) dlatego, że: mam to wszystko poukładane w tym projekcie ładnie po folderach, więc jak pisałem #include "stdafx.h"
to nie potrafił znaleźć pliku, bo on był level albo dwa wyżej w katalogu, ale jak dałem #include "..\stdafx"
to znowuż się czepiał, że unexpected eof while looking for precompiled header...
czyli że nie znalazł linijki #include "stdafx.h"
, no i nic dziwnego, przecież jest, ale #include "..\stdafx"
. I to go chyba nie satysfakcjonuje - co ja mam teraz wywalać wszystko z folderów i robić jeden wielki śmietnik? Tylko dlatego że ktoś sobie wymyślił załączanie jakiegoś stdafx'a?... Sory, ale IMO to jest chore.
nie, to nie jest chore. to Ty tego nie rozumiesz i niedoczytales o co chodzi.
precompiled headers mozesz traktowac jako "przyspieszacz" kompilacji oraz "drugie serce" intellisense'a.
stdafx.h zostal "wymyslony" po to, abys czesto uzywane naglowki wlasnie w tym jednym pliku #include'owal, gdyz skoro sa czesto uzywane to sa uzywane wszedzie a zmienaja sie rzadko. dzieki temu kompilator moze sobie ten plik sparsowac raz, prekompilowac wyciagajac z niego maksimum informacji o nazwach i symbolach, a potem podczas kompilowania innych plikow korzystac z tgo przygotowanego wczesniej slownika nazw.
jesli to wylaczysz, kompilator dla każdego pliku .cpp bedzie musial jeszcze raz, od nowa, przeanalizowac całe drzewo sciezek #include, co w przypadku kilkuset a i czasami nawet przy kilkudziesieciu plikach cpp juz robi calkiem duza roznice w ilosci czasu jaki kompilacja zajmuje..
to tyle.
a teraz wylacz precompiled headers (gdzies w opcjach projektu jest przelacznik "user precompiled headers" - wybierz NO), albo napraw wszedzie sciezki do #include stdafx i sprobuj raz jeszcze