Re: Byte Array aus C++ DLL in VB importieren
- From: René König <rk@xxxxxxxxxxx>
- Date: Sun, 30 Dec 2007 12:38:30 +0100
Hallo!
Alexander Mueller schrieb:
Btw, weißt Du, ob ein als (byte * pArrData) btw (byte ** ppArrData)
deklarierter Parameter in COM legal ist, insbesondere wenn die Methode
automations-kompatibel sein soll (IDispatch) und ob er in VB unterstützt
würde?
Legal ist das natürlich, aber *nicht* automatisierungs-kompatibel. Und dann funktioniert es selbst in CPP nicht, wenn die Aufrufe über Prozess-Grenzen hinweg verlaufen. Da Du keine weiteren Informationen über das Array hast, kann Marshalling nicht stattfinden. So, wie es eben dort steht, ist der nackte Pointer ein Pointer auf ein einziges Element. Nur dieses wird dann übertragen. Willst Du mehr, musst Du noch weitere Parameter in die Liste einarbeiten, die Du in der IDL mit den Attributen length_is, size_is, first_is usw. ausschmückst. Bei SAFEARRAYs hingegen bekommst Du alle diese Informationen frei Haus.
Übrigens, wenn Du nicht nur automatisierungs-kompatibel sein willst, sondern auch scriptable, so darfst Du als Array-Type nur VARIANT benutzen. Oder in IDL gesprochen: SAFEARRAY(VARIANT)*
Wie auch immer, hatte mir geholfen meine CPP/ATL Skills zu schulen.
Für den Trick mit dem (SAFEARRAY (byte) * ppsa) in der IDL
der in der Implementation als (SAFEARRAY ** ppsa) deklariert wird,
musste ich ziemlich googlen (MIDL2139) ;-)
Wobei der "Trick" auch in dem von mir verlinkten Artikel Erwähnung findet (Scenario 3). ;-)
Gruß,
René
.
- References:
- Byte Array aus C++ DLL in VB importieren
- From: Friedemann Wolpert
- Re: Byte Array aus C++ DLL in VB importieren
- From: Alexander Mueller
- Re: Byte Array aus C++ DLL in VB importieren
- From: René König
- Re: Byte Array aus C++ DLL in VB importieren
- From: Alexander Mueller
- Re: Byte Array aus C++ DLL in VB importieren
- From: René König
- Re: Byte Array aus C++ DLL in VB importieren
- From: Alexander Mueller
- Byte Array aus C++ DLL in VB importieren
- Prev by Date: Re: SystemParametersInfo(SPI_GETNONCLIENTMETRICS,...
- Next by Date: Re: SystemParametersInfo(SPI_GETNONCLIENTMETRICS,...
- Previous by thread: Re: Byte Array aus C++ DLL in VB importieren
- Next by thread: Re: VB6 und Access
- Index(es):
Relevant Pages
|
Loading