Dll erstellen, modul einbinden

  • VB.NET

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

    Dll erstellen, modul einbinden

    Hi
    Hab folgendes problem: Ich will ne dll erstellen, und benutzen, die klassenbibliotek beinhaltet ausser einer klasse auch noch ein modul, das ich nicht anzeigen aber dll-intern doch benutzen möchte.
    Im modul sind alle functions "Friend Function", und da steht wenn ich eine funktion eines modules aufrufe: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
    Mfg
    Wer Rechtschreibfehler findet darf sie behalten :)
    Der Zugriffsmodifizierer sollte hier eigentlich keine Ausnahme auslösen, kann aber auch sein, dass ich mich irre.
    Jedoch, wie rufst du das Modul auf?
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Hm, ich habe nicht all zu viel Ahnung von Modulen, aber das sollte so gehen. Da ist wahrscheinlich nen Fehler im Crypt. Zeig mal die Codezeile, in der die Ausnahme auftritt und den entsprechenden Code.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Exeption:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. System.NullReferenceException wurde nicht behandelt.
    2. HResult=-2147467261
    3. Message=Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    4. Source=Cryptlib
    5. StackTrace:
    6. bei Cryptlib.Class1.CryptPICaesar(String Cryptstring, Int32 PiFaktor, Int32 PiStart, String PiText, Int32 CryptBlocks) in C:\Users\Darkie\Documents\Visual Studio 2010\Projects\FuseLib\ClassLibrary1\ClassLibrary1\Class1.vb:Zeile 7.
    7. bei test.Form1.Button2_Click(Object sender, EventArgs e) in C:\Users\Darkie\AppData\Local\Temporary Projects\test\Form1.vb:Zeile 16.
    8. bei System.Windows.Forms.Control.OnClick(EventArgs e)
    9. bei System.Windows.Forms.Button.OnClick(EventArgs e)
    10. bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    11. bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    12. bei System.Windows.Forms.Control.WndProc(Message& m)
    13. bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    14. bei System.Windows.Forms.Button.WndProc(Message& m)
    15. bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    16. bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    17. bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    18. bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
    19. bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
    20. bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
    21. bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
    22. bei System.Windows.Forms.Application.Run(ApplicationContext context)
    23. bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
    24. bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
    25. bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
    26. bei test.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 81.
    27. bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
    28. bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    29. bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    30. bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    31. bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    32. bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    33. bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    34. bei System.Threading.ThreadHelper.ThreadStart()
    35. InnerException:

    VB.NET-Quellcode

    1. For Each f In Cryptstring
    2. crypted &= (Module1.Crypt(f, a(pirange)))
    3. pirange += 1
    4. If pirange >= a.Length Then
    5. pirange = 0
    6. End If
    7. Next f

    Also in einen normalen win-forms funzt es.
    Wer Rechtschreibfehler findet darf sie behalten :)
    Cryptlib.Class1.CryptPICaesar(String Cryptstring, Int32 PiFaktor, Int32 PiStart, String PiText, Int32 CryptBlocks)
    Es scheint mir, als wenn einer der Parameter Nothing ist. Fahre mal bei der Exception mit der Maus über die Locals für die Parameter und schau, welches davon "Nothing" ist.
    Zudem: ClassLibrary1, Class1 usw. geht mal garnicht. Benenne das schleunigst um und zwar guidelinekonform.
    msdn.microsoft.com/en-us/libra…ows/desktop/aa511440.aspx
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    joniator schrieb:

    Funzt trozdem ned

    Funzt nicht? Wat

    Was soll da funktionieren? Das war nichts zum Ausprobieren, ich habe dir Anweisungen gegeben, wie du ermitteln kannst, was Nothing ist :?: :!:
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    joniator schrieb:

    test.Form1.Button2_Click(Object sender, EventArgs e) in test\Form1.vb:Zeile 16.
    Welch Code steht da?
    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!

    joniator schrieb:

    nich einfach so auslesen kann?
    Schreib sie in native C++.
    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!