Diskuze: Nejlepši nastavení kompilátoru v Microsoft Visual Studiu 2017
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 40 zpráv z 40.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
MSVS 2017 ještě nemám, takže ti aspoň poradím, jak tyto problémy řešit na verzi 2015.
Čau potřebuju poradit jak pořádne nejlíp nastavit C++ projekt s Windows Forms Applications
tak aby fungoval potom ten program na Windows xp a výších verzí
V nastavení projektu v záložce General zkus nastavit Platform Toolset na Visual Stduio 2017 – Windows XP. Nevím ale, zda tato možnost v 2017 bude podporována, v 2015 stále je (nebo jde doinstalovat).
Teoreticky by se ti mohlo podařit dosáhnout kompatibility s XP i bez tohoto toolsetu, ale je to trošku ruční práce, na kterou asi nemáš zanlosti.
Jinak pokud vím, tak Windows Forms pro svůj běh potřebují .NET Framework, takže se závislosti na nějakém tom "dpolňku" jen tak nezbavíš.
tak aspoň mi prosím poraďte jak nastavim nějak ten projekt aby po kompilaci ten program nevyžadoval žádný doplňky nebo aspoň aby jich bylo co nejmíň
V nastavení projetku záložka C/C++ | Code Generation, nastav položku Runtime Library na Multi-threaded (pro Release) nebo Multi-threaded Debug (pro Debug). Pak je běhová knihovna linkována staticky, tzn. je již součástí výsledného .exe souboru.
I bez běhové knihovny se lze obejít, ale opět je to dost ruční práce a dost to omezuje výběr funkcí, které můžeš v programu použít (popř. je třeba nahradit jejich ekvivalenty z Windows API).
estli nejde udělat program kterej se spustí normálně na operačním systému Windows xp a výš
tak potom by mě zajímalo jak udělali hru bulánky......
Bulánky byly tvořeny v době, kdy byly Windows XP plně podporovaným operačním systémem, tedy podporovaným i Visual Studiem. Teď to s XP může pomalu být tak, jako je už léta s Windows 2000 nebo s Windows XP bez SP2.
to s tim toolkitem pro Windows xp nejde to jsem zkoušel to
znám
ale teď už to možná pujde ale nevim proto že nějak mi nefunguje kompilace
po tom co jsem si nastavil
v tom projektu jak jsi mi poradil to s tim Multi-threaded tak
teď mi to nejde poradíš prosím proč mi to nejde?
tady je obrázek s tim jak jsem to nastavil a dole je chybovej výstup: zde
Vypadá to, že pro Multithreaded musíš zároveň vypnout Common Runtime Language Compilation (/clr), což si ale nejse mjistý, zda vůbec půjde pro Windows Forms aplikaci.
aha tak že to mám zrušit to multithreaded a dát to jak to bylo?
Ano, i když pak tam budeš mít závislost na běhové knihovně.
Jo a nevíš nějak jak udělat aby ten program fungoval i na jiným windowsu na kterým není tohle: zde
To by podle mě právě řešilo to Multithreaded , nebo ten toolset s Windows XP.
Aha no ten toolkit na to nefunguje a bohužel ani ten Multithreaded.
Jinak nemohlo by z těch toolkitů pomoct na to aby to šlo na jiným Windowsu
něco z tohodle: zde
nebo jsem teď oběvil v nastavení projektu ještě nějakou optimalizaci: zde
no prosím poraďte jak to opravit jinak ještě by mě zajímalo jak zrušim
aby se prostě vůbec nezoobrazoval
ten příkazovej řádek po spuštění se nejdřív oběví příkazovej
řádek
jo a ještě k těm Windowsům na jiným počítači nepohlo by že bych dal
nějaký soubory do složky s tim programem? že by si je pak načetl
a ekzistujou nějaký soubory z tohodle: zde který bych jen do tý složky s programem dal
Jinak nemohlo by z těch toolkitů pomoct na to aby to šlo na jiným Windowsu něco z tohodle: zde
Zkoušel jsi Visual Studio 2015 – Windows XP?
jo a ještě k těm Windowsům na jiným počítači nepohlo by že bych dal nějaký soubory do složky s tim programem? že by si je pak načetl
Ano, jedním z řešením je do adresáře aplikace přidat i DLL knihovny, které to nemůže najít.
nějak mi to nefunguje to .dll se nenačte: zde
jak to mám opravit?
jinak s tim toolkitem 2015 pro Windows xp to nefunguje na Windows xp: http://i.imgur.com/B6EeWZO.png
jak to teda opravit?
Ohledně frameworku: na XP se dá použít maximálně verze 4.0, novější ne. Samozřejmě musíš mít na cílovém pc nainstalován shodný framework s aplikací.
aha no já jsem to nějak podobně věděl mám tam 3.0 framework
ale teď nikde nemůžu najít framework 3.0 offline instalaci nevíte kde to
mám najít?
na stránkách microsoftu to není teda já to tam nenašel
nechceš ten projekt převést na framework 3.5? Tady je odkaz ke stažení
Framework 3.0 totiž již není podporován.
aha děkuju ale mě to nejde na ma virtualboxu windows xp sp1 a vyžaduje to
sp2
jinak vůbec mi nejde windows update ani skoro žádná stránka na těch
windows xp sp1
nevíte proč? jak to mám opravit?: zde
jinak ani nevim jestli tam je windows xp update na sp2 je to tam? nevíte?
Podpora XP byla ukončena v dubnu 2014.
Pokud nemáš to stažené v roce 2014, nebo CD, tak to na stránkách MS
nestáhneš, z jiných webu to stahovat nedoporučuji.
sakra já jsem myslel že jen updaty se noví nedělají a né že to celi
smažou
tak abych někde sehnal sp2
Windows XP SP1 už jsou nepodporované hodně dlouho. I běhová knihovna pro Windows XP již dávno počítá s tím, že budeš mít aspoň SP2.
Do virtuálky bych klidně SP2 ze serveru typu stahuj.cz nainstaloval, i v případě nějaké škodlivosti nebude efekt výrazný. A pokud ten Service Pack stáhneš z prověřeného serveru, tak si myslím, že riziko je minimální.
Akorát tak troch nechápu, proč usiluješ o to, aby tvůj program běžel
na XP, když tento systém nemáš k dispozici.
(A ještě jedna rada, nevím sice jak daleko si v C++ Windows Forms
Applications, ale na formulářové aplikace doporučuji spíše jazyk C#)
Omlouvám se za off-topic, ale doporučoval bych autorovi vlákna, aby si
znovu prošel pravidla českého pravopisu, bolí mě oči jen ze čtení těch
hrůz, kterých se dopouštíš...
Jinak bez SP2 se pravděpodobně neobejdeš a budeš muset risknout to
stáhnout. Jen se ujisti, že to mají cílové počítače.
sakra já jsem myslel že jen updaty se noví nedělají a né že to celi
smažou
tak abych někde sehnal sp2 jinak to zkusím na vistě
já mám jen 64 bit vistu na virtualbox když to zkusim na 64 bitoví vistě
a když to bude fungovat tak je jasný že to bude fungovat i na 32 bitoví
vistě?
nebo si budu muset sehnat 32 bitovou vistu? nebo neznáte nějakej 100%
spolehlivej nějakej testovač programů
na kterym si vyberu operační systém a potom otestuju program jestli by ten
program na tom operačním systému
fungoval? abych nemusel furt shánět windowsy?
HONZ4 Chci aby to šlo i na Windows xp proto že kamarád ho má a
furt říká že to měnit nebude
že prej windows xp jsou nejlepší operační systém a že kdyby měl noví
počítač tak taky myslím že říkal že by si tam dal Windows xp no
každopádně mě totiž podle tohodle člověka napadlo že takovích lidí
bude víc
tak aby když bych to vydal na Steam třeba k prodeji tak aby to šlo co
nejvíce lidem spustit
a když to bude fungovat tak je jasný že to bude fungovat i na 32 bitoví vistě?
Pravděpodobně ano, ale záleží na aplikaci... a to slovo "pravděpodobně" je důležité.
kamarád ho má
Pokud má alespoň SP2, tak ho chápu. Je ale pravda, že XP vznikala v době, kdy byla situace kolem hardware trochu jiná (daleko méně paměti), takže pro stroje s větší pamětí mohou být XP naopak výkonnostní problém, který ale lze řešit vypnutím stránkovacího souboru.
Takže nainstaluj SP2 a uvidíš.
S vyvýjejícím se HW, bude lidí jako je tvůj kamarád rychle ubývat. Na
novém počítači, by si jen cvok snižoval výkon použitím XP. A jelikož za
pár dní končí i Visty, tak bych se klidně zaměřil na minimum W7.
Nicméně pokud svůj program napíšeš v .net 3.5, tak můžeš klidně
uvést, že to na XP pojede bez záruky - většině lidí to poběží. (Lidi s
čistým XP a XP-Sp1, ani nepočítají s tím, že cokoliv doinstalují).
(Pokud má tvůj kámoš XP, tak si od něj půjč CD.)
No tak teda teď jsem to otestoval na Windowsu Vista a nevim proč
ale myslím že to píše něco uscrt.base terminate že chybí v knihovně
api-ms-win-crt-runtime-l1-1-0.dll
kterou jsem tam musel ručně dát
proto že při spuštění to píše že to chybí
nemám bohužel teď čas to zkoumat proto že chci jít spát jinak tak 5 dní
asi nebudu moct být na počítači
tak že potom to snad nějak pořešíme proč to nejde na Windows xp a Windows
Vista
HONZ4 tak asi možná se na ty visty a windows xp přinejhoršim vykašlu když by to nešlo
jo a překonvertoval jsem ten projekt správně? když jsem přepsal jenom
framework verzi v nastavení projektu
z 3.0 na 3.5 a potom klikl pravim na projekt a dal retarget project nebo
retarget solution teď nevim nějak tak
jinak na tom Windows Vista jsem nainstaloval framework a vc_redistx.64 nebo tak nějak teď nevim jak se to jinak jmenuje a stejně to nešlo
vc_redistx64 ti nepomůže, pokud aplikaci kompiluješ pro 32bitové platformy, tam potřebuješ 32bitové Visual C++ Redistributable.
aha no tak tam mám i 32 bit vc redist ale stejně to nejde
tady je screenshot:
http://i.imgur.com/U6clA2n.png
nevíte teda co mám ve visual studiu upravit nebo co mám ještě odinstalovat
a co můžu odinstalovat na tý vistě?
a jo já jak jsem přijel a neměl čas právě domů a nevěděl co dřív
tak mi to nemyslelo
tak že jinak ta otázka kde seženu to .dll ve kterym je to ucrtbase.terminate
?
naposled:
návod na nastavení WinForm: http://stackoverflow.com/a/32404584
na cílovém počítači musíš mít nainstalovaný ten Framework, ve kterém
je sestavená aplikace + redist. balíček shodný s VS.
Sestavení by mělo být s nastavením Release
http://i.imgur.com/w1XnJwp.png -všechno jsem to udělal jak
jsi mi teď napsal ale furt to nejde
a to s tím nastavení winform už dávno mám:
http://i.imgur.com/npoJoCQ.png
http://i.imgur.com/6095frf.png
napadlo mě jestli to není tím že jsem to konvertoval s net.frameworku 3.0 na
3.5
a konvertoval jsem to tak že jsem ve vlastnostech toho projektu přepsal
.NET Target Framework Version 3.0
na .NET Target Framework Version 3.5
a potom jsem dal proto že to nešlo skompilovat tak jsem klikl pravím
tlačítkem myši na ten projekt a dal jsem
Retarget Projects
Framework 3.5 bych neřešil, podlé té hlášky jde o běhové prostředí tzn. stáhnout tento balíček a doporučuji nastavit platformu na Visual Studio 2017 - Windows XP (v141_xp) ne "Visual Studio 2017" a musí to jet i na XP (s nainstalovaným frameworkem 3.5) Mám to odzkoušeno.
Zkus spustit na Vistě tuto aplikaci:
http://leteckaposta.cz/513828616
aplikace je sestavená s nastavením jak jsem psal.
Pokud ti na Vistě pojede, tak máš špatné nastavení projektu, pokud ne, tak
máš špatně nastavenou Vistu.
(je to jen prázdné okno, které nic nedělá)
http://i.imgur.com/Jxj1wI1.jpg -aha asi mám nějak rozbitou
vistu jak to opravit? ale to mi přijde divný já jsem se v ní nijak
nehrabal
jinak nenainstaloval jsem si ten balíček jsem zapoměl a tak to otestuju znovu
hned jak se mi na tu vistu
nainstalujou aktualizace
aha tak to s tim balíčkem to už tam mám dokonce i x64 a nejde to
něco mám asi s tou Vistou ale co? já se v ní nehrabal
ta hláška je přesně ta, která se zobrazuje pokud nemáš nainstalovaný balík, který je potřeba (v případě mé aplikace je to ten, na který jsem ti dal odkaz vc_redist.x86 pro vs 2017)
na obrázcích je důkaz. Obrázek s chybou je bez redist a druhý s redist.
ale ten 2017 mám a nejde to
ten odkaz od tebe na stažení jsem si ověřoval je z týhle stránky kde jsem
to stahoval a instaloval:
https://www.visualstudio.com/cs/downloads/
tak to fakt nevím, prostě by to mělo fungovat.
(Můj odkaz směřoval ke stejnému zdroji jako je odkaz na stránce co jsi
uvedl)
Nemáš to třeba nějaký pochybný systém, někde z netu? Sice se mi moc
nezdá, že by to způsobovalo zrovna tohle, ale jinak mě nic jiného
nenapadá.
tak jsem nainstaloval jinou vistu a na ní jsem nainstaloval vc redist x86
2017 a už to aspoň hlásí jinou chybu:
http://i.imgur.com/2phntSj.png
ale já jsem myslel že jsem změnil tu verzi .net frameworku jak se teda mění
ta verze toho frameworku
ve visual studiu 2017?
já jsem to udělal tak že jsem přepsal verzi .net fremeworku ve vlastnostech
projektu na 3.5
a potom jsem klikl pravim tlačíktem myši na ten projekt a dal jsem retarget
projects nebo tak nějak
tak takhle se to asi nedělá jak se to teda dělá?
a nechceš si stáhnout framework 4, taky je podporován XP SP3.
mění se to nastavením Platform Toolset ("Windows XP (v141_xp)" je 4.0)
https://msdn.microsoft.com/…f770576.aspx
jo s frameworkem 4 to funguje moc děkuju a jde to i dokonce na Woknech xp
zkoušel to ten kamarád
dám ti fajfku
Zobrazeno 40 zpráv z 40.