Ich hoffe ich bin jetzt in der richtigen NG - jedenfalls finde ich keine
deutschsprachige, die besser paßt.
Ich habe ein MS-Visio2000 VBA-Programm und eine in VB6 (ohne SP)
programmierte Active-X -DLL.
Ich würde gerne einen selbstdefinierten Datentyp an diese DLL übergeben -
nur kriege ich das partout nicht hin! Wenn ich versuche, den Typ ByRef zu
übergeben bekomme ich "Argumenttyp ByRef unverträglich", versuche ich es per
Value bekomme ich "Benutzerdefinierter Typ kann nicht als Wert (ByVal)
übergeben werden" :-(
Die Typdeklaration haben ich von Visio aus per Copy+Paste übernommen, daher
kann also eigentlich keine Unverträglichkeit kommen. Ich kann auch zurchaus
eine Variable dieses Typs aus der dll *zurückgeben* - aber ich schaffe es
nicht, eine hineinzubekommen!
Hilfe!
Peter
Trotzdem danke!
Peter
"Peter Hagemann" <phag...@nsl.de> schrieb im Newsbeitrag
news:9kttdr$nnn$07$1...@news.t-online.com...
Wo ist der Type denn _ursprünglich_deklariert?
Der Type muß in der DLL deklariert sein. Anders kann es auch gar nicht
gehen, denn die DLL kann ja nur kompiliert werden, wenn sie den
Datentyp kennt.
Falls der Type in MS-Visio2000 deklariert ist, mußt Du in Deiner DLL
in Projekt -> Verweise einen Verweis auf MS-Visio setzen - falls das
möglich ist! Da ich Visio nicht habe und kenne, kann ich das nicht
beantworten.
Jedenfalls nützt es nichts, eine _Kopie_ der Type-Deklaration in der
DLL zu verwenden. Dann handelt es sich zwar um einen Type der genauso
aufgebaut ist, wie das Orignal, es ist aber nicht _derselbe_ Type.
Deswegen kommt auch die Fehlermeldung "Argumenttyp ByRef
unverträglich".
Armin
Die doppelte Typdeklaration war genau der Grund. Ich habe den jetzt in der
DLL deklariert, und komme per Verweis auf die DLL auch von Visio aus an den
Typ heran.
Vielen Dank für die Hilfe
Peter
"Armin Zingler" <armin....@freenet.de> schrieb im Newsbeitrag
news:3b72...@news.basicworld.com...