Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

C++ DLL für Visual Basic - Array als Parameter

Heizöl / 2 Antworten / Baumansicht Nickles

Hallo,
ich habe eine DLL erstellt mit einer Schnittstelle zu VB.
Eine der Funktionen soll ein Array als Parameter übergeben sowie verändert zurückgeben können.

Ich bin folgendermassen vorgegengen:
Zuerst ein neues Projekt erstellt mit Hilfe des MFC-Anwendungsassistenten (dll)
Einstellungen: Standard DLL, gemeins. MFC-DLL verwendend;
Haken für Automation gesetzt
dann neue Klasse erstellen (MFC-Klasse)
Einstellungen: Basisklasse: CCmdTarget
Erstellbar nach TypID (Vorschlag übernehmen)
Mit einem rechtsklick auf den Schlüssel (IKlassenname) klann ich neue Eigenschaften oder Methode hinzufügen. Es werden mir dann vom Assistenten verschiedene Datentypen vorgegeben, die ich für den Rückgabewert und die Parameter verwenden kann. Nur keine unterstützung für Arrays.
Kann jemand helfen?

Danke schonmal...

P.S.:Pointer übergeben geht zwar mit VB aber anscheinend sind die Speicherbereiche bei der Automation getrennt.

bei Antwort benachrichtigen
thomas woelfer Heizöl „C++ DLL für Visual Basic - Array als Parameter“
Optionen

vb hat keine pointer typen und daher wird man nach vb auch keine pointer uebergeben koennen. konstante arrays aus einfachen typen sollten hingegen gehen - allerdings werden die m.w. dann by value uebergeben, d.h. du kannst das dann nicht aendern...

WM_SORRY
thomas woelfer

this posting contains no tpyos.
bei Antwort benachrichtigen
Heizöl thomas woelfer „ich denke das wird mit vb einfach nicht gehen“
Optionen

Ich habe bereits mehrfach gelesen das zumindest die Übergabe eines Arrays funktionieren muss. Ich habe nur keine Ahnung wie. Was mir fehlt ist ein Beispiel wie z.B. die Parameterliste im ODL-File dafür aussehen muss, beim afxmsg usw.
Ich hab schonmal mit VARIANT rumprobiert und COleSafeArray bin aber nicht auf die Lösung gekommen.

bei Antwort benachrichtigen