[VB2005] c++ dll in VB einbinden

mrlowbyte

Grünschnabel
Hi to all,

ich habe da mal ein Problem:

Ich muß eine c++ dll in meiner VB Anwendung aufrufen. Das Problem dabei ist der Pointer. Das c++ Headerfile sieht so aus:

Code:
void __cdecl module1(unsigned long *Zahl);

Bisher habe ich folgendes getestet (leider ohne Erfolg)

Declaration:
Code:
Declare Sub module1 Lib "externedll.dll" Alias "module1" _
    (ByVal Zahl As UInt32)

Aufruf:
Code:
Dim Zahl As UInt32
module1(Zahl)
Label1.Text = Zahl.ToString

Verständlich, dass es nicht geht, da es sich ja um einen Pointer handelt, nur wie realisiere ich das? Gelesen habe ich bereits über UIntPtr, bzw. MarshalAs. Aber ohne damit Erfolg gehabt zu haben (nicht das lesen hat hat keinen Erfolg gehabt, sondern der Versuch das ganze zu implementieren..).

Wäre nett wenn mir da jemand helfen könnte.
 
Hier konnte / wollte mir niemand halfen, also help yourself:

Drei Buchstaben machen es aus. In der Declaration darf nicht die Variable selbst, sondern ihre "Adresse" (Pointer) übergeben werden:

Code:
Declare Sub module1 Lib "externedll.dll" Alias "module1" _
    (ByRef Zahl As UInt32)

Mit ByVal wird der Inhalt der Variablen, mit ByRef deren Adresse beschrieben, thats it.
 

Neue Beiträge

Zurück