Forums Neueste Beiträge
 

Byte Array aus C++ DLL in VB importieren

25/12/2007 - 04:19 von Friedemann Wolpert | Report spam
Hi !

Ich versuche seit 3 Tagen erfolglos einen einfachen Byte Array aus einer C++
DLL in VB zu importieren. So langsam weiss ich nicht mehr weiter.

C++ Teil:

// *cLampAdressSet is first Element of my VB Byte Array passed byRef
// So use the VB Byte Array instead of the C++ one

STDMETHODIMP CEZrgb8::SetDotMatrix(byte *bpLampAdressSet){

//bpLampAdressSet = new byte[176];
//bpLampAdressSet = &bLamp[0];
RtlMoveMemory(bpLampAdressSet, &bLamp, 175); // tut alles nicht

return 0;
}

das ganze wird so an die DLL übergeben von VB aus:

Dim lTestArray(175) As Byte
lResult = SetDotMatrix(lTestArray(0))

In der C++ DLL gibt es einen Byte Array bLamp[176] , den benötige ich am
besten als Zeiger quasi in Visual Basic.


Bin über jede Hilfe Dankbar.
 

Lesen sie die antworten

#1 Thomas Krause
25/12/2007 - 10:32 | Warnen spam
Hallo,

in C++ ist der Name eines Arrays schon die Adresse des ersten Elements - es
sollte also heißen:

RtlMoveMemory(bpLampAdressSet, bLamp, 175);

Was sonst noch alles falsch ist kann ich jetzt aus dem Stehgreif nicht
beurteilen. In VB vielleicht explizit ByRef angeben - aber das müßte
eigentlich automatisch gesetzt sein.

Gruß
Thomas


"Friedemann Wolpert" schrieb im Newsbeitrag
news:
Hi !

Ich versuche seit 3 Tagen erfolglos einen einfachen Byte Array aus einer
C++ DLL in VB zu importieren. So langsam weiss ich nicht mehr weiter.

C++ Teil:

// *cLampAdressSet is first Element of my VB Byte Array passed byRef
// So use the VB Byte Array instead of the C++ one

STDMETHODIMP CEZrgb8::SetDotMatrix(byte *bpLampAdressSet){

//bpLampAdressSet = new byte[176];
//bpLampAdressSet = &bLamp[0];
RtlMoveMemory(bpLampAdressSet, &bLamp, 175); // tut alles nicht

return 0;
}

das ganze wird so an die DLL übergeben von VB aus:

Dim lTestArray(175) As Byte
lResult = SetDotMatrix(lTestArray(0))

In der C++ DLL gibt es einen Byte Array bLamp[176] , den benötige ich am
besten als Zeiger quasi in Visual Basic.


Bin über jede Hilfe Dankbar.

Ähnliche fragen