hallo entwicklerforum
ich möchte eine Methode aus einer DLL aufrufen, welche ich zuvor über "Verweise" hinzugefügt habe.
Der Auruf der Methode in C++ sieht folgendermaßen aus:
[highlight=c++]
IMyObjectPtr p;
p.CreateInstance(__uuidof(MyObject) );
int iParams = 2;
SAFEARRAY *pSaFeld = SafeArrayCreateVector( VT_BSTR, 0, iParams );
SAFEARRAY *pSaWert = SafeArrayCreateVector( VT_BSTR, 0, iParams );
long Count = 0; // Zähler für 2 Parameter
// 1. Wert
SafeArrayPutElement( pSaFeld, &Count, SysAllocString(L"Wert1"));
SafeArrayPutElement( pSaWert, &Count, SysAllocString(L"1"));
Count = 1;
// 2. Wert
SafeArrayPutElement( pSaFeld, &Count, SysAllocString(L"Wert2"));
SafeArrayPutElement( pSaWert, &Count, SysAllocString(L"2"));
VARIANT var1, var2;
V_VT(&var1) = VT_ARRAY | VT_BSTR;
V_VT(&var2) = VT_ARRAY | VT_BSTR;
var1.parray = pSaFeld;
var2.parray = pSaWert;
//um diese Methode geht es
p->Action( bstrComponentID, 2, 0, 0, 0, var1, var2, 0)
[/highlight]
Laut Schnittstelle hat die Methode "Action" folgende Parameter:
Wie würde der Aufruf der Methode "Action" in C# aussehen. Wie initialisiere ich die Paramater, speziell var1 und var2 (Zeiger auf String-Arrays???)
Freue mich über jeden denkanstoß
mfg
ich möchte eine Methode aus einer DLL aufrufen, welche ich zuvor über "Verweise" hinzugefügt habe.
Der Auruf der Methode in C++ sieht folgendermaßen aus:
[highlight=c++]
IMyObjectPtr p;
p.CreateInstance(__uuidof(MyObject) );
int iParams = 2;
SAFEARRAY *pSaFeld = SafeArrayCreateVector( VT_BSTR, 0, iParams );
SAFEARRAY *pSaWert = SafeArrayCreateVector( VT_BSTR, 0, iParams );
long Count = 0; // Zähler für 2 Parameter
// 1. Wert
SafeArrayPutElement( pSaFeld, &Count, SysAllocString(L"Wert1"));
SafeArrayPutElement( pSaWert, &Count, SysAllocString(L"1"));
Count = 1;
// 2. Wert
SafeArrayPutElement( pSaFeld, &Count, SysAllocString(L"Wert2"));
SafeArrayPutElement( pSaWert, &Count, SysAllocString(L"2"));
VARIANT var1, var2;
V_VT(&var1) = VT_ARRAY | VT_BSTR;
V_VT(&var2) = VT_ARRAY | VT_BSTR;
var1.parray = pSaFeld;
var2.parray = pSaWert;
//um diese Methode geht es
p->Action( bstrComponentID, 2, 0, 0, 0, var1, var2, 0)
[/highlight]
Laut Schnittstelle hat die Methode "Action" folgende Parameter:
Code:
int Action(string bstrKompID, int lMaNr, int lAuVJ, int lAaNr, int lUtNr, int iEvent, object In1, object In2, out object pOut);
Freue mich über jeden denkanstoß
mfg
Comment