Aufruf einer ActiveX DLL Funktion aus C

uni

Mitglied
Hallo,

folgendes Problem: ich habe eine Funktion in Basic (ActiveX DLL) z.B.

Public Function MyFillStr(strValue As String) As Long

strValue = strValue & " HALLO"

MyFillStr = True 'alles ok
End Function

Diese Funktion möchte ich aus C aufrufen. Der MIDL-Compiler erstellt mir folgendes

[id(0x6003001f)]
HRESULT MyFillStr(
[in, out] BSTR* strValue,
[out, retval] long* );


Ziel ist, aus C ein String an die ActiveX DLL zu übergeben und irgendwie zu bearbeiten.
Wie mache ich das jetzt in C?

Wie muss ich "strValue" definieren? Normalerweise würde ich z.B.

char strValue[40];

memset(strValue, 0x0, sizeof(strValue));
hr = IVBTestClass->MyFillStr(strValue, &ReturnValue);

schreiben. Aber der Compiler meldet

error C2664: 'MyFillStr' : Konvertierung des Parameters 1 von 'unsigned char [40]' in 'unsigned short ** ' nicht moeglich

Kann mir jemand sagen, wie das geht?
 
hab glaub ich das gleiche Problem.
Hab eine VB dll und will die in VC aufrufen.
Das ganze in VS 2005.

Hat du vielleicht schon eine Lösung?

VG

PS: Diese DLL Hell :(
 
Zurück