Mam problem s Managed DirectX ve VB.NET. Pouzivam Visual Basic 2008 Express Edition, verze DX SDK je June 2008 a jako OS mam 64-bit Vistu. Kdyz ale cokoli ve VB napisu s pouzitim DX knihoven, tak to bez problemu zkompiluju, pri spusteni(debug i normalni) to vsak hodi vyjimku BadImageFormatException, u ktere je napsano:is not a valid Win32 application. (Exception from HRESULT: 0x800700C1) Nejdriv jsem myslel, ze jsem neco spatne napsal a zjednodusil jsem to jak nejvic to slo a porad to same. Potom jsem si stahl z tohoto webu projekt z prvniho dilu o DirectX a bez jakekoli modifikace jsem ho zkompiloval a spustil, ale zase ta stejna chyba. Tak jsem trochu prohledal internet a nekde jsem nasel, ze pro "normalni" vyvoj (v C++) jsou dstupne DX knihovny v 32 i 64-bit verzi, coz vsak neplati pro Managed DirectX, kde jsou pouze v 32-bit. A tyto knihovny se pry nedaji volat z 64-bit aplikace. A jestli tomu dobre rozumim, tak kdyz zkompiluji projekt, tak se prevede do CIL, a dokompiluje se az pri spusteni na danem pocitaci podle daneho procesoru. A na 32-bit systemech se dokompiluje do 32-bit aplikace, zatimco na 64-bit systemech z toho bude 64-bit aplikace, ze ktere uz ale nejdou volat 32-bit DX knihovny. Nemam to vyzkousene, ale myslim si tedy, ze ten jeden stejny soubor by bezel pouze na 32-bit systemech a vubec nezalezi kde jsem to vyvijel. Reseni jsem nasel jednoduche, nastavit ve Visual Studiu, aby se pri kompilaci do CIL napsalo, ze se to vzdy ma zkompilovat jako x86. Potom by se to na 64-bit systemech dokompilovalo jako by to bylo na 32-bit systemu a melo by to fungovat. Mozna jsem slepy, ale moznost nastavit cilovou CPU architekturu jsem ve sve Express edici nenasel. Jestli je problem v tom v cem jsem psal, jak se to resi? Jestli je problem jinde, prosim napiste. Dekuji moc za jakoukoli odpoved a omlouvam se, ze nepouzivam diakritiku, prestoze je to v pravidlech diskuzniho fora, ale nejsem v diakritice na klavesnici moc zbehly a trvalo by mi o dost dele nez bych to napsal.
|