Aplikace a Win64 (x64)   zodpovězená otázka

VB.NET

Zdravím všechny,

nainstaloval jsem si na můj notebook systém Windows 7 Ultimate v 64 bitové verzi. Pracuji teď na jednom projektu, kde používám DLL komponentu třetí strany. Před změnou OS všechno fungovalo správně, leč po přechodu na nové Windows mi přestala fungovat zmíněná komponenta (k chybě dochází již při její inicializaci) a vrací chybu:

System.Reflection.TargetInvocationException was unhandled

Message="Cíl vyvolání způsobil výjimku."

Source="mscorlib"

...

Napadlo mne, že to asi bude mít co dočinění s 64 bitovými Windows a tak jsem ze stránek výrobce stáhl tu samou komponentu pro x64, čímž jsem problém vyřešil.

Příznám se ale, že v tom teď mám docela zmatek a chtěl bych se tedy zeptat na následující:

Když v projektu ponechám onu 64 bitovou verzi komponenty, poběží aplikace i na počítačích s 32 bitovými Windows? A pokud ne, akým způsobem se řeší tahle problematika, když požadujeme, aby program fungoval i na 32 bit a zároveň i na 64 bit.

Můžete mi prosím doporučit nějaký dobrý informační zdroj, kde by se tato problematika dala nastudovat?

Děkuji mnohokrát.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ještě jsem zapomněl dodat, že pro vývoj aplikace používám Microsoft Visual Studio 2008 a jedná se o klasickou desktopovou aplikaci.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Musí vaše aplikace být nutně 64bitová? Využijete někdy víc než 4GB paměti? Pokud ne, nemá smysl se s 64bity párat, používat 32bitové knihovny a kompilovat do x86 (nastavuje se to ve vlastnostech projektu někde tuším na záložce Build, záleží na typu projektu a programovacím jazyce; standardně je vybráno Any CPU, což znamená, že nemáte žádné preference, tzn. na x64 systému se to kompiluje 64-bitově a na 32-bitovém 32-bitově).

Pokud používáte nějakou knihovnu, u které výrobce určil, že je 32bit nebo 64bit, musíte si udělat dvě build konfigurace, jednu 32bitovou a druhou 64bitovou a mít dvě verze aplikace. Anebo aplikaci udělat jen 32bitovou a nemít tyto problémy.

64bitů má smysl u databázových serverů, aplikací pracující se spoustou grafiky, u kodeků a u her. Pro běžnější aplikace, které si ukrojí 100MB paměti, neobsahují nějaké náročnější algoritmy a víc nepotřebují to žádný přínos nemá, anebo jen zanedbatelný.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vážený pane Hercegu,

mnohokrát Vám děkuji za odpověď. Samozřejmě 64 bit. aplikaci vyvíjet nemusím. Přenastavil jsem projekt podle Vaší rady a vše již funguje k plné spokojenosti.

Děkuji Vám.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Podle mě je nejlepší způsob ponechat Any CPU, tedy aby to běželo tak jako systém. Problém bohužel nastává pokud program využívá nějakou knihovnu třetí strany která je napevno x86 nebo x64.

U kodeků x64 smysl nemá, protože většina multimediálních aplikací využívajících kodeky je 32-bitová.

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět

Ale ale, 64bitové kodeky jsou tu již hezkou dobu a používají se v mnoha aplikacích, jak free - např. 64bitový Windows Media Player, tak i v profesionálním komerčním střihovém softwaru.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak to bude nějaký omyl. Napište mi alespoň jeden 64-bitový kodek (DirectShow filtr), který se běžně používá pro dekódování/kódování videa. Například běžně používaný DivX, CoreAVC, Haali Media Splitter, AC3Filter, VSFilter. Nic z tohoto neexistuje v 64-bitové verzi. A to je ten problém. Stejný problém je například se zásuvnými moduly (pluginy) pro webové prohlížeče.

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět

Jsou 64bitové kodeky pro Windows 7 jako doplněk kodeků 32bitových. Funguje 64bitový Media Player (ten by 32bitové kodeky použít nemohl). http://www.shark007.net/x64components.ht...

WMW je také 64bitový, Haali má 64bitové buildy taky, FFDShow, což je balík kodeků, také existuje v 64bitové podobě. DirectShow filtry pro 64bitů opravdu existují, nepoužívají se masově, ale prosazovat se začínají. Konec konců 64bit tady není tak dlouho, rozmohlo se to až v posledních letech.

U kodeků se zrovna 64bitů vyplatí, kodeky mohou používat pokročilejší instrukce, které x86 instrukční sada prostě nemá.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Haali Media Splitter je x64 pouze v betaverzi a FFDShow je naprosto nepoužitelná splácanina všeho dohromady. Ve WMV není skoro nic, tudíž to ani není potřeba zmiňovat. To nejpodstatnější - DivX a VSFilter v x64 verzi není. Windows Media Player z Windows 7 má sice jakousi podporu DivX a x264, tato je ovšem prakticky nepoužitelná věc (fungovalo mi s tím minimum filmů). Myslím že kodeky a zásuvné moduly se ještě hodně dlouho nebudou dělat v x64 verzích. Ostatně to je důvod k tomu, že v 64-bitových verzích Windows je například Windows Media Player a Internet Explorer i 32-bitových verzích.

nahlásit spamnahlásit spam -3 / 3 odpovědětodpovědět

S vámi se při vší úctě nedá diskutovat. Já napíšu, že má smysl přemýšlet o 64bitech, když chcete psát kodeky. Vy nejdřív tvrdíte, že 64bitové kodeky neexistují. Když vám uvedu pár příkladů, že existují, tak zase tvrdíte, že sice existují, nicméně jsou to buď splácaniny (což se nedá objektivně potvrdit ani vyvrátit), anebo je neuznáváte, protože se podle vašich měřítek nepoužívají dost často, což je taky "argument za všechny prachy".

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tvrdil jsem že v x64 verzi neexistují ty nejvíce používané. Nějaké WMV nikoho nezajímá protože se v tom nic nevydává. O "kvalitách" FFDShow jsem se už několikrát přesvědčil, je to nepoužitelný hnůj, který se mimochodem spouští například i při přehrávání videí ve hrách což většinou působí velké problémy. Ty co jste uvedl existují pouze v experimentálních verzích, stabilní a použitelné jsou pouze ve 32-bitové verzi. No a například oficiální DivX, dnes vedle x264 asi nejpoužívanější formát v 64-bitové verzi neexistuje vůbec. To jsou prostě holá fakta.

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět

Veškeré streamované video na Internetu je buď v primitivním FLV, anebo ve WMV, které je na to celkem pěkně přizpůsobené, podporuje např. Smooth Streaming.

Naproti tomu DivX používají v 99% případů jen děti stahující kradené filmy.

Ještě jednou a naposledy - netvrdím, že se 64bitové kodeky používají masově a všude. Ale již dnes se s nimi na mnohých místech můžeme setkat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback