| |
VB.NET - Ein- und Umsteiger32Bit - 64Bit - DLL | | | Autor: mathemike | Datum: 17.09.13 19:34 |
| Hallo ! Ich habe von XP 32Bit auf Win7 64Bit umgestellt, VB2008 aber behalten (natürlich neu installiert). Unter XP hatte ich mit VB2008 eine DLL erzeugt, auf die spätere Programme per Verweis immer zugegriffen haben. Das lief einwandfrei. Nach Umstieg auf Win7 64Bit habe ich neue Programme geschrieben, die wieder per Verweis auf die alte DLL zugegriffen haben (ich habe also die DLL nicht neu kompiliert). Auch das lief absolut störungsfrei. Bis gestern. Ich habe absolut nichts Neues auf meinem PC installiert. Jetzt sehe ich beim Start der neuen Programme von der VB2008-Oberfläche immer den "BadImageFormatException"-Fehler. Geht man ins Detail, wird die bekannte DLL angemeckert. Ich verstehe das nicht. Wenn dieser Fehler von Anfang an nach der Umstellung gekommen wäre, ok. Aber so ? Von einem auf den anderen Tag ? Allerdings gab es mehrere Microsoft-Updates kurz vorher, besonders zum Framework. Kann dieses ein Update so ein Verhalten auslösen ? Ich habe zwar die Lösung meines Problem gegoogelt und habe im Konfigurations-Manager unter VB2008 von "AnyCPU" auf "x86-CPU" umgestellt, um eine 32Bit-Kompatibilität zu erreichen (dann läuft alles wieder), aber muss man das wirklich tun ? Ich werde meine DLL demnächst mal neu kompilieren und wieder umswitchen, aber diese Veränderung im Verhalten von einem auf den anderen Tag soll mir mal einer erklären. | |
Re: 32Bit - 64Bit - DLL | | | Autor: Manfred X | Datum: 17.09.13 20:56 |
| Hallo!
So viel ich mitgekriegt habe, kommt es wohl zu dieser Ausnahme,
wenn in der IDE unterschiedliche Ziel-CPUs beim Kompilieren
der beteiligten Komponenten (Plattform: AnyCpu) eingestellt waren.
Beitrag wurde zuletzt am 17.09.13 um 20:57:11 editiert. | |
Re: 32Bit - 64Bit - DLL | | | Autor: FZelle (Moderator) | Datum: 18.09.13 11:01 |
| BadImageFormatException kommt wenn man NATIVE DLL's im "falschen" Format benutzt.
| |
Re: 32Bit - 64Bit - DLL | | | Autor: mathemike | Datum: 18.09.13 19:32 |
| Dass mit dem falschen Format hatte ich ja bemerkt. Aber gut. Ich habe heute die DLL auf dem 64Bit-System neu kompiliert. Wenn ich dann einen Verweis drauf mache, laufen die Programme. Dass ich eine 32Bit-DLL - von einem auf den anderen Tag - nicht auf einem neu erstellten 64Bit-Programm nutzen kann, bleibt trotzdem ein Rätsel. Dass 64Bit-DLLs umgekehrt nicht auf 32Bit-System laufen, war mir ja klar. Aber umgekehrt ? Und wie gesagt, zuerst lief ja alles. Beenden wir die Angelegenheit. Danke ! | |
Re: 32Bit - 64Bit - DLL | | | Autor: FZelle (Moderator) | Datum: 18.09.13 20:52 |
| Nein, wir sollten die Angelegenheit nicht beenden.
Du scheinst nicht verstanden zu haben was ich gesagt habe.
Native DLL's sind nicht .NET DLL's.
Du kannst nur dann auf einem 64Bit Rechner Probleme bekommen, wenn du aus einer MixedMode ( also Any CPU ) DLL/EXE auf eine 32Bit native DLL zugreifst.
Wenn du nur in der .NET Welt bleibst, kann es also nicht passieren.
| |
Re: 32Bit - 64Bit - DLL | | | Autor: Manfred X | Datum: 18.09.13 23:04 |
| Ich habe mal gelesen, die Ordner-Such-Reihenfolge
für Komponenten habe sich im Framework irgendwann (?)
im Rahmen eines Update geändert.
Es könnte sein, daß Du deshalb nach dem Update eine falsche
Version der DLL beim Laden erwischt hast.
Nur so eine Vermutung ....
| |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|