DLL Programmieren

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    DLL Programmieren

    Hey Leute,
    Ich bin echt am verzweifeln.
    Ich versuche eine DLL zu programmieren.
    Ansich habe ich kein Problem.
    Aber ich versuche jetzt schon mind. 3std. folgendes hinzubekommen:

    VB.NET-Quellcode

    1. Imports GamingDLL
    2. Dim MyAccount as New GamingAccount


    Soweit so gut.

    Ich hab auch die Möglichkeit zu schreiben:

    VB.NET-Quellcode

    1. MyAccount.Play


    Nun möchte ich aber dass ich auch sagen kann:

    VB.NET-Quellcode

    1. MyAccount.SETTINGS.Life = 100


    Aber ich schaffe es einfach nicht eine Klasse in die DLL zu programmieren auf die ich direkt zugreifen kann.

    HILLFFEEE!

    Ugf. Aufbau der DLL:

    VB.NET-Quellcode

    1. Namespace GamingDLL
    2. Public Class GamingAccount
    3. Public Sub Play()
    4. 'DO SOMETHING SPECIAL
    5. End Sub
    6. Class Settings
    7. Public Shared Property Life as Integer
    8. GET
    9. SET
    10. 'USW...
    11. End Class
    12. End Class
    Das ist doch eine 2. Klasse in Deiner DLL, erstelle eine weitere Instanz:

    VB.NET-Quellcode

    1. Public Class Settings
    und

    VB.NET-Quellcode

    1. Dim MySettings As New GamingDLL.GamingAccount.Settings
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    dotNetCoding schrieb:

    Hab ich auch schon versucht
    Hat es funktioniert oder nicht?
    Da Du die innere Klasse extern instanziieren willst, pack sie aus der äußeren raus, lege sie daneben, nicht rein. Das macht ansonstern keinen Unterschied.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Fang an mit

    RodFromGermany schrieb:

    VB.NET-Quellcode

    1. Public Class Settings
    sonst bekommst Du gar keine Info rüber, dass es eine Klasse Settings gibt.
    Ansonsten höre auf die IDE, sie bietet Dir nur das an, was auch verfügbar ist.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Du sollst vor

    VB.NET-Quellcode

    1. Class Settings

    die Zeichenfolge Public davor schreiben:

    RodFromGermany schrieb:

    VB.NET-Quellcode

    1. Public Class Settings
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Es ist eine Klasse.

    VB.NET-Quellcode

    1. Dim MyAccount As New GamingAccount
    2. Dim xx As New GamingAccount.Settings
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Warst Du nicht der Kerl, der Videos machen wollte, dem ich auch noch die Stange gehalten hab? Und jetzt enttäuscht Du mich....

    VB.NET-Quellcode

    1. Public Class GameAccount
    2. Public Property AccountSettings As Settings
    3. Public Property AccountName As String
    4. Public Sub New(ByVal accountName As String)
    5. Me.AccountName = accountName
    6. AccountSettings = New Settings("test1", 100)
    7. End Sub
    8. End Class
    9. Public Class Settings
    10. Public Property SettingA As String
    11. Public Property SettingB As Integer
    12. Public Sub New(ByVal settingA As String, ByVal settingB As Integer)
    13. Me.SettingA = settingA
    14. Me.SettingB = settingB
    15. End Sub
    16. End Class
    17. Public Class Form1
    18. Private _myGameAccount As New GameAccount("SpaceyX")
    19. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    20. MessageBox.Show(_myGameAccount.AccountSettings.SettingA)
    21. MessageBox.Show(_myGameAccount.AccountSettings.SettingB.ToString())
    22. End Sub
    23. End Class
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Danke SpaceyX :) Aber das hilf mir nicht weiter!

    VB.NET-Quellcode

    1. Public Class GameAccount
    2. Public Property Settings As AccountSettings
    3. Sub New()
    4. Me.Settings = New AccountSettings
    5. End Sub
    6. End Class
    7. Public Class AccountSettings
    8. Public Function DoSomethingCool(byval Parm as String) As Boolean
    9. Return True
    10. End Function
    11. End Class
    12. Public Class Form1
    13. Sub Test()
    14. Dim MyAccount as New GameAccount
    15. MyAccount.Settings.DoSomethingCool("Epic") ' DAS GEHT NICHT! Settings steht nicht zur auswahl.
    16. End Sub
    17. End Class
    Wenn Du jetzt noch sagst, was Dir nicht weiter hilft, dann können wir nochmal drüber reden.

    VB.NET-Quellcode

    1. Public Class GameAccount
    2. Public Property AccountSettings As Settings
    3. Public Property AccountName As String
    4. Public Sub New(ByVal accountName As String)
    5. Me.AccountName = accountName
    6. AccountSettings = New Settings("test1", 100)
    7. End Sub
    8. End Class
    9. Public Class Settings
    10. Public Property SettingA As String
    11. Public Property SettingB As Integer
    12. Public Sub New(ByVal settingA As String, ByVal settingB As Integer)
    13. Me.SettingA = settingA
    14. Me.SettingB = settingB
    15. End Sub
    16. Public Sub DoSomethingCool()
    17. End Sub
    18. End Class
    19. Public Class Form1
    20. Private _myGameAccount As New GameAccount("SpaceyX")
    21. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    22. 'MessageBox.Show(_myGameAccount.AccountSettings.SettingA)
    23. 'MessageBox.Show(_myGameAccount.AccountSettings.SettingB.ToString())
    24. _myGameAccount.AccountSettings.DoSomethingCool()
    25. End Sub
    26. End Class
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    dotNetCoding schrieb:

    MyAccount.Settings kann ich immer noch nicht verwenden.
    Für einen Zugriff über MyAccount.Settings muss Settings eine Public Prozedur oder eine Public Property von GameAccount sein, wie von @SpaceyX: gezeigt.
    Lass Dich von der IDE führen, sie zeigt Dir, was im aktuellen Kontext verfügbar ist.

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class GamingAccount
    2. Public Property MySettings As Settings
    3. Public Sub Play()
    4. 'DO SOMETHING SPECIAL
    5. End Sub
    6. Public Class Settings
    7. Public Shared Property Life As Integer
    8. 'USW...
    9. End Class
    10. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!