[VB.NET] Errormelding omtrent objectverwijzing bij gebruik

Pagina: 1
Acties:
  • 858 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • rimpeldinky
  • Registratie: Mei 2002
  • Laatst online: 28-07 10:04
Het probleem dat ik heb is als volgt:

Ik wil in mijn programma gebruik maken van een soort Config File die DMV een .dll word aangeroepen. deze .dll haalt zijn gegevens rechtstreeks uit het register van windows. De bedoeling is dus dat ik tegen die .dll zeg haal de volgende tekenreeks op uit die sleuten van Current User. In mijn geval HKEY_CURRENT_USER\Software\Creative Minds\Kassa\db_database
Indien ik de code als function in mijn form bouw waar ik hem in nodig heb:

code:
1
2
3
4
5
6
7
8
    Public Function ReadLn(ByVal LineName As String, ByVal RegSub As String) As String
               If LineName = "" Then Exit Function
               If RegSub = "" Then RegSub = "Software\Creative Minds\Kassa"
               Dim RegKey As RegistryKey, RegSubKey As RegistryKey
               RegKey = Registry.CurrentUser
               RegSubKey = RegKey.CreateSubKey(RegSub)
               Return RegSubKey.GetValue(LineName, "")
    End Function


werkt hij feilloos en krijg ik die betreffende key terug.

Vervolgens zet ik het als volgt in een .dll:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Imports Microsoft.Win32
Imports System
Public Class Config
    Public Function ReadLn(ByVal LineName As String, ByVal RegSub As String) As String
        If LineName = "" Then Exit Function
        If RegSub = "" Then RegSub = "Software\Creative Minds\Kassa"
        Dim RegKey As RegistryKey, RegSubKey As RegistryKey
        RegKey = Registry.CurrentUser
        RegSubKey = RegKey.CreateSubKey(RegSub)
        Return RegSubKey.GetValue(LineName, "")
    End Function
    Public Function WriteLn(ByVal LineName As String, ByVal RegSub As String, ByVal Contents As String)
        If LineName = "" Then Exit Function
        If RegSub = "" Then RegSub = "Software\Creative Minds\Kassa"
        Dim RegKey As RegistryKey, RegSubKey As RegistryKey
        RegKey = Registry.CurrentUser
        RegSubKey = RegKey.CreateSubKey(RegSub)
        RegSubKey.SetValue(LineName, Contents)
    End Function
End Class


Als ik dan in mijn programma na het toevoegen van de juiste .dll als volgt gegevens opvraag:

code:
1
2
3
    dim Whatever as string        
    Dim pr_config As Creative_Minds.Config
        whatever = pr_config.ReadLn("db_database", "") <----- Hier gaat hij op fout



krijg ik deze foutmelding voor mijn kiezen:

An unhandled exception of type 'System.NullReferenceException' occurred in MAIN.exe

Additional information: De objectverwijzing is niet op een exemplaar van een object ingesteld.

Na flink gegoogled te hebben was ik niets wijzer. Het moet iets kleins zijn maar ik zie het gewoon niet.

Het vreemde vind ik ook dat als ik heel de inhoud van function Readln remark dus dat hij niets uitvoert de foutmelding nog steeds gegeven word. Het lijkt in de structuur en aanroep van de class te zitten.

*burp*


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 01-08 17:24

gorgi_19

Kruimeltjes zijn weer op :9

Je maakt geen instantie van Creative_Minds.Config aan; het zal iets van

Dim pr_config As Creative_Minds.Config = new Creative_Minds.Config

moeten zijn.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • rimpeldinky
  • Registratie: Mei 2002
  • Laatst online: 28-07 10:04
Thnx. _/-\o_ Ik wist dat het in een klein hoekje zat. Het werkt feilloos. :)

*burp*