importdll Fehlermeldung

  • VB.NET

    importdll Fehlermeldung

    Hi,

    also ich weiß nicht ob das in diesen Teil gehört aber die anderen erschienen mir auch nicht gerade passend.

    ich versuche jetzt schon seit einiger Zeit die eine Dll zur steuerung eines Roboters von Fischer Technik (RoboTX) in mein VB Projekt eingebunden zu bekommen.

    jedoch tritt bei mir immer folgender Fehler auf:

    Ein Aufruf an die PInvoke-Funktion "test1!test.TXCDaten.FTXLib::ftxOpenComDevice" hat das Gleichgewicht des Stapels gestört. Wahrscheinlich stimmt die verwaltete PInvoke-Signatur nicht mit der nicht verwalteten Zielsignatur überein. Überprüfen Sie, ob die Aufrufkonvention und die Parameter der PInvoke-Signatur mit der nicht verwalteten Zielsignatur übereinstimmen.

    hier noch der Code der classe, die dll bereitstellen soll:

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.Text
    3. Imports System.Runtime.InteropServices
    4. Namespace TXCDaten
    5. Public Enum FTERR As UInteger
    6. FTLIB_ERR_SUCCESS = &H0
    7. End Enum
    8. Public Enum TA_ID
    9. TA_LOCAL = 0 'Transfer Area des Masters
    10. TA_EXT_1 'Transfer Area für Slave 1
    11. TA_EXT_2 'Transfer Area für Slave 2
    12. TA_EXT_3 'Transfer Area für Slave 3
    13. TA_EXT_4 'Transfer Area für Slave 4
    14. TA_EXT_5 'Transfer Area für Slave 5
    15. TA_EXT_6 'Transfer Area für Slave 6
    16. TA_EXT_7 'Transfer Area für Slave 7
    17. TA_EXT_8 'Transfer Area für Slave 8
    18. TA_N_PARTS 'Anzahl der Transfer Areas
    19. End Enum
    20. Public Enum InputMode
    21. MODE_U = 0 ' mV
    22. MODE_R = 1 ' 5 kOhm
    23. MODE_ULTRASONIC = 3
    24. MODE_INVALID
    25. End Enum
    26. Public Class FTXLib
    27. Declare Function IniLib Lib "ftMscLib.dll" Alias "ftxInitLib" () As UInteger
    28. Declare Sub CloseLib Lib "ftMscLib.dll" Alias "ftxCloseLib" ()
    29. Declare Function ftxOpenComDevice Lib "ftMscLib.dll" Alias "ftxOpenComDevice" (<MarshalAs(UnmanagedType.LPStr)> ByVal comStr As String, ByVal baudr As UInteger, <Out()> ByRef errcode As UInteger) As UInteger
    30. <DllImport(".//ftMscLib.dll", EntryPoint:="ftxCloseDevice")> _
    31. Public Shared Sub CloseInterface(ByVal fthdl As UInteger)
    32. End Sub
    33. End Class
    34. End Namespace


    und die test datei:

    VB.NET-Quellcode

    1. Imports System
    2. Namespace TXCDaten
    3. Module Module1
    4. Dim fthdl As UInt32 = 0
    5. Dim com As String = "COM5"
    6. Sub Main()
    7. Dim errCode As UInteger
    8. FTXLib.IniLib()
    9. Console.WriteLine("geöffnet")
    10. fthdl = FTXLib.ftxOpenComDevice("COM", 38400, errCode)
    11. Console.WriteLine("gestartet")
    12. FTXLib.CloseInterface(fthdl)
    13. Console.WriteLine(errCode & "Fehlercode")
    14. FTXLib.CloseLib()
    15. End Sub
    16. End Module
    17. End Namespace


    der Fehler tritt immer beim aufruf der Funktion: FTXLib.ftxOpenComDevice("COM", 38400, errCode)

    hat einer von euch eine Idee was ich falsch mache?

    Mfg PatteKi