VB2005 Code für x32 und x64

07/09/2009 - 17:16 von Stefan Brand | Report spam
Hallo,

ich arbeite mit VB2005Express und habe mir ein kleine Programm geschrieben,
dieses mir auf unseren WinXP-SP2-Rechner Werte aus der Registry in eine
Datenbank übernimmt. Das Tool arbeitet auf allen x32-Systemen problemlos. Auf
den x64-Systemen klappt nichts. Ich habe mir nun einen x64-Rechner
installiert und VB2005Express installiert. Wenn ich mein Tool dort ausführen
lasse, bekomme ich folgende Fehlermeldungen zurück:

Einzelschritt: Nichtbenutzercode "System.Windows.Forms.Control.Refresh" wird
übersprungen.
Einzelschritt: Nichtbenutzercode "Microsoft.Win32.RegistryKey.OpenSubKey"
wird übersprungen.
Einzelschritt: Nichtbenutzercode "System.Windows.Forms.Control.Refresh" wird
übersprungen.
Einzelschritt: Nichtbenutzercode "Microsoft.Win32.RegistryKey.OpenSubKey"
wird übersprungen.
Einzelschritt: Nichtbenutzercode "Microsoft.Win32.RegistryKey.GetValue" wird
übersprungen.
Einzelschritt: Nichtbenutzercode "Microsoft.Win32.RegistryKey.OpenSubKey"
wird übersprungen.
Einzelschritt: Nichtbenutzercode "Microsoft.Win32.RegistryKey.GetValue" wird
übersprungen.
Einzelschritt: Nichtbenutzercode
"Microsoft.Win32.RegistryKey.GetSubKeyNames" wird übersprungen.
Einzelschritt: Nichtbenutzercode "System.DateTime.Now.get" wird übersprungen.
Einzelschritt: Nichtbenutzercode
"Microsoft.VisualBasic.CompilerServices.Conversions.ToString" wird
übersprungen.
Einzelschritt: Nichtbenutzercode
"System.Data.OleDb.OleDbConnection.OleDbConnection" wird übersprungen.
Einzelschritt: Nichtbenutzercode
"System.Data.OleDb.OleDbCommand.OleDbCommand" wird übersprungen.
Einzelschritt: Nichtbenutzercode "string.Concat" wird übersprungen.
Einzelschritt: Nichtbenutzercode "System.Data.OleDb.OleDbConnection.Open"
wird übersprungen.
Eine Ausnahme (erste Chance) des Typs "System.InvalidOperationException" ist
in System.Data.dll aufgetreten.

Ich habe unter Google einige Hilfefragen diesbezüglich gefunden, aber keine
Lösung passte zu mir.

Wer kann mir helfen?
 

Lesen sie die antworten

#1 Peter Götz
07/09/2009 - 18:24 | Warnen spam
Halo Stefan,

ich arbeite mit VB2005Express



... dann bist Du hier in der falschen Newsgroup.
Richtig wàre für VB.net die NG

microsoft.public.de.german.entwickler.dotnet.vb


und habe mir ein kleine Programm geschrieben,
dieses mir auf unseren WinXP-SP2-Rechner Werte
aus der Registry in eine Datenbank übernimmt.



Was für eine Datenbank?
SQL-Server, Oracle, Access.mdb usw.?


Das Tool arbeitet auf allen x32-Systemen problemlos. Auf
den x64-Systemen klappt nichts.



Was klappt denn nicht?
Fehlermeldung?


Ich habe mir nun einen x64-Rechner installiert



X64 was?
XP64, Vista64, Windows7/64?


und VB2005Express installiert. Wenn ich mein Tool
dort ausführen lasse, bekomme ich folgende Fehlermeldungen
zurück:

Einzelschritt:
Nichtbenutzercode "System.Windows.Forms.Control.Refresh" wird
übersprungen.
Einzelschritt:
Nichtbenutzercode "Microsoft.Win32.RegistryKey.OpenSubKey"
wird übersprungen.
Einzelschritt:
Nichtbenutzercode "System.Windows.Forms.Control.Refresh" wird
übersprungen.
Einzelschritt:
Nichtbenutzercode "Microsoft.Win32.RegistryKey.OpenSubKey"
wird übersprungen.
Einzelschritt:
Nichtbenutzercode "Microsoft.Win32.RegistryKey.GetValue" wird
übersprungen.
Einzelschritt:
Nichtbenutzercode "Microsoft.Win32.RegistryKey.OpenSubKey"
wird übersprungen.
Einzelschritt: Nichtbenutzercode "Microsoft.Win32.RegistryKey.GetValue"


wird
übersprungen.
Einzelschritt:
Nichtbenutzercode
"Microsoft.Win32.RegistryKey.GetSubKeyNames" wird übersprungen.
Einzelschritt:
Nichtbenutzercode "System.DateTime.Now.get" wird übersprungen.
Einzelschritt: Nichtbenutzercode
"Microsoft.VisualBasic.CompilerServices.Conversions.ToString" wird
übersprungen.
Einzelschritt:
Nichtbenutzercode "System.Data.OleDb.OleDbConnection.OleDbConnection"
wird übersprungen.



Ich rate nach dieser Zeile mal, dass Du mit
einer Access.mdb arbeitest?

... schnipp ...

Sofern Du mit der Jet-Enginge auf eine Access.mdb zugreifst,
musst Du Dein Programm für X86-CPU kompilieren, da die
Jet-Engine nur als 32-Bit Version verfügbar ist.

Du hast vermutlich für Any-CPU kompiliert, was zur Folge
hat, dass Dein Programm auf einem 64-Bit-System auch
im 64-Bit-Modus làuft und somit die Jet-Engine (32-Bit)
und evtl. sonstige von Deinem Programm benötigten
32-Bit-Komponenten nicht nutzen kann.

Wer kann mir helfen?



Bei den Projekteigenschaften -> Kompilieren -> erweiterte
Compilereinstellungen -> Ziel-CPU = x86 einstellen, dann
klappts auch mit der Jet-Engine und evtl. sonst noch benötigten
32-Bit-Komponenten unter einem 64-Bit-System.

Für weitere Fragen bitte

microsoft.public.de.german.entwickler.dotnet.vb

nutzen. Mehr zu den div. NGs unter

www.gssg.de -> Newsgroups

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen