Visual Basic 6.0 Problem beim .dll zugriff

OP #5143186
Hallo Liebe VB6 Experten,

ich habe probleme beim aufrufen der folgenden dll Funktionen in VB6

1.
DlnOpenUsbDevice()

Beschreibung der Function
    C/C++

DLN_RESULT DlnOpenUsbDevice(
   HDLN* deviceHandle
);

2.
DlnI2cMasterSetFrequency()

Beschreibung:
DLN_RESULT DlnI2cMasterSetFrequency(
   HDLN handle,
   uint8_t port,
   uint32_t frequency,
   uint32_t* actualFrequency
);

Hier meine Declaration für 1.:

Private Declare Function DlnOpenUsbDevice Lib "C:\dln.dll" (ByVal 
deviceHandle As Long) As Byte

Beim Aufruf in VB6:
DlnOpenUsbDevice(devicehandle)

kommt immer Fehler Variable nicht definiert und Programm stürzt ab.

Was mache ich falsch?
Gast
1.) Ist die DLL korrekt registriert (Regsvr32)
    >%systemroot%\SysWoW64\regsvr32 <vollständiger Pfad der DLL>

Public Declare Function DlnI2cMasterSetFrequency Lib "dln.dll" (ByVal 
deviceHandle As Long) As Byte


..stimmt nicht mit der Parameterliste der C-Funktion überein:

DLN_RESULT DlnI2cMasterSetFrequency(
   HDLN handle,
   uint8_t port,
   uint32_t frequency,
   uint32_t* actualFrequency
);
Gast
Laut:

http://dlnware.com/sites/dlnware.com/files/downloads/dln_c_api.pdf
(ist doch diese DLL?!)

auf Seite 11 ist die Aufruf-Konvention für C/C++, das heisst "cdecl". 
Default ist unter Windows "stdcall". Kannst Du die Call-Convention 
irgendwie umstellen (anständige Programmiersprachen sollten das können).

Sei froh, dass eine Fehlermeldung kommt, sonst würde das ganze System 
crashen! Der Stack wird sonst nicht richtig aufgeräumt!

Ich habe mir wegen diesem Problem für die "mpusbapi.dll" eine 
Wrapper-DLL geschrieben.

Gruss Chregu

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.