Strukturen in .Net.

05/12/2008 - 23:15 von Wolfgang Badura | Report spam
Hallo liebe NG-Teilnehmer.
Nachdem ich erst am Anfang meiner .Net-Erfahrungen stehe eine Frage zu
Strukturen:
Das Programm, welches ich von VB 6 auf .Net umstellen wollte liest die
Zeitzoneninformationen aus der Registry aus.
Hier komme ich um die Deklaration von Strukturen nicht herum.
Dabei stellt sich ein elementares Problem.
Die Deklaration entstammt der Konvertierung und befindet sich in dem Module
WeltZeitMain.
Dieses war in VB 6 das Startobjekt und enthielt den Code zum Auslesen der
Registry-Infos:

Private Structure TIME_ZONE_INFORMATION
Dim Bias As Integer
<VBFixedArray(63)> Dim StandardName() As Byte ' used to accommodate
Unicode strings
Dim StandardDate As SYSTEMTIME
Dim StandardBias As Integer
<VBFixedArray(63)> Dim DaylightName() As Byte ' used to accommodate
Unicode strings
Dim DaylightDate As SYSTEMTIME
Dim DaylightBias As Integer
Public Sub Initialize()
ReDim StandardName(63)
ReDim DaylightName(63)
End Sub
End Structure

Im Sub Main() wird diese Struktur dann verwendet.

Dim TZ As TIME_ZONE_INFORMATION
und
TZ = New TIME_ZONE_INFORMATION()

Wenn ich, ehe diese Struktur aus der Registry belegt wird, auf die
Integer-Variablen zugreifen möchte geht das problemlos.
Will ich aber mit
TZ.StandardName(0) = 0
auf das 1. Element von StandardName zugreifen, so erhalte ich immer den
Fehler
"Object reference not set to an instance of an object"
Der weitere Fehlertext lautet "Erstellen Sie eine Objektinstanz mit dem
Schlüsselwort "new"."
Tu ich doch. Das scheint aber nicht zu genügen.

Was fehlt in dem Code?
Kann man die Struktur vielleicht besser deklarieren?
Ich kàmpfe schon einen ganzen Tag (+Nacht) und bin schon ziemlich verzagt.
In der OH habe ich nicht wirklich Brauchbares entdekt.

(Leider geht mein Internet dzt. ganz schlecht.
Obwohl in Wien zuhause, ist laut Telekom für meinen DSL-Anschluß die
Festnetzleitung seit 2 Tagen zu lang und schlecht
(2 Jahre gings aber gut) und mein HSDPA-Modem streikt auch!)

Danke für Hinweise.

Mit Gruß aus Wien, Wolfgang

PS: Warum hat das Konvertierungsprogramm die Typen nicht umgestellt?
Integer auf short, Long auf integer etc.?
 

Lesen sie die antworten

#1 Thomas Scheidegger
05/12/2008 - 23:41 | Warnen spam
Hallo Wolfgang

Zeitzoneninformationen aus der Registry




falls .NET 3.5 (VS2008) dann passt evtl. 'TimeZoneInfo':
http://msdn.microsoft.com/de-de/lib...97781.aspx



Thomas Scheidegger - 'NETMaster'
http://dnetmaster.net/

Ähnliche fragen