VB aplikace na xp64 - dll knihovny   zodpovězená otázka

VB.NET

Vytvořil jsem ve VB 2005 EE jednoduchou desktopovou aplikaci pro ovládání grafického sw třetí strany. Grafický sw při instalaci zaregistruje dll knihovny, které ve své aplikaci uvedu v referencích a používám třídy z těchto knihoven. Na PC s 32 bitovými XP Pro vše běží v pohodě. Přenesl jsem celý adresář svého řešení včetně podadresářů na PC s 64 bitovými XP Pro, kde je též nainstalován grafický sw i VB 2005 EE shodné verze, jsou na něm úplně stejné dll knihovny grafického sw, které jsem v projektu pro jistotu znovu nareferencoval. Před spuštěním ve vývojovém prostředí vypadá vše OK, nic nechybí. Pokud aplikaci sputsím (F5) pak sice běží, ale naprosto "mlčky" neprovádí kód těch částí, kde jsou použity třídy z dll knihoven grafického sw. Přitom projekt ty třídy zná, při psaní kódu nic nepodtrhává a funguje i intelisence nápověda pro metody a vlastnosti.

Zkusil jsem napsat úplně primitivní kód, kdy v loadu úvodního formu akorát inicializuju jeden objekt dle třídy z knihovny a přiřadím hodnotu jedné jeho vlastnosti. Umístím-li na přiřazení breakpoint, debugger nezastaví a formulář se korektně zobrazí.

Třetí strana dodala kromě dll knihoven i jakési jednoduché ukázkové příklady ve VB 2005. Pokus o spuštění ve vývojovém prostředí kteréhokoli z nich končí chybovou hláškou:

"An error occurred creating the form. See Exception.InnerException for details. The error is: Could not load file or assembly 'Rtx.Playback, Version=2.0.1.0, Culture=neutral, PublicKeyToken=36aff3aac6948bf6' or one of its dependencies. An attempt was made to load a program with an incorrect format."

Přitom knihovna RTX.Playback v referencích uvedena je.

Tuším, že by se mohlo jednat o nějaký problém s verzí knihoven pro platformu xp64. Všechny tyto grafické knihovny jsou při istalaci grafického sw umístěny do adresáře WINDOWS/assembly/Gac_32. Pokud vím, tak verze těchto knihoven pro 64bit neexistují. Asi se VB snaží linkovat kód pro xp64, což bych mu rád nějak zakázal, ale to jsou jen spekulace opřené o mé velmi chatrné znalosti.

Poradí někdo prosím, strávil jsem s tím den a noc, načetl nějaké informace o manifestu. linkování apod., ale nějak s tím nemohu hnout.

Díky

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

Tak už jsem se k tomu dohrabal. Je třeba nastavit u projektu Target platform x86. To mě sice napadlo už dříve, ale bohužel to zaškrtávátko nějaká chytrá hlava cudně skryla a objeví se až když v Options nastavíte jiné zaškrtávátko Show Advanced Build Configuration. Ach jo. Dvanáct hodin bádání, protože někdo něco z nepochopitelných důvodů schová. No jasně - blbej by si tím mohl ublížit a chytrej hned ví kam má šáhnout. My průměrní musíme hodiny googlit...

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

Takhle na to přijít sám je nejlepší způsob jak si to zapamatovat a naučit se nové věci.

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