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?
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?