Benutzerdefinierten Datemtyp übergeben
-
Hallo Forum!
Ich habe folgendes Problem:
Ich habe mir mittels C++ eine dll geschrieben.
Ich möchte nun einen Benutzerdefinierten Datentypen aus einem VB Programm an diese dll übergeben.Wie muss ich im Funktionsaufruf in meinem C-Programm Deklarieren?
Und wie ist der API aufruf dann?So habe ich es versucht:
VARIANT_BOOL _stdcall Funktionsname(RECT r, LPCSTR path)
Im VB is RECT ein Benutzerdefinierter Datentyp. Den kann ich nur ByRef übergeben.
Also folgendes Probiert:VARIANT_BOOL _stdcall Funktionsname(RECT *r, LPCSTR path)
Leider meckert er dann.
error C2228: Der linke Teil von '.bottom' muss eine Klasse/Struktur/Union sein
error C2228: Der linke Teil von '.left' muss eine Klasse/Struktur/Union sein
error C2228: Der linke Teil von '.right' muss eine Klasse/Struktur/Union sein
error C2228: Der linke Teil von '.top' muss eine Klasse/Struktur/Union seinWäre für ein wenig Hilfestellung sehr dankbar!
Greetz
Joey
-
Ok. Meine Glaskugel ist zwar leider immer noch kaputt, aber ich vermute mal du hast so was in der Art versucht:
VARIANT_BOOL _stdcall Funktionsname(RECT *r, LPCSTR path) { if(r.bottom == 0) return 0; else return 1; }
r ist ein Zeiger, RECT*. Und wenn du über einen Zeiger auf die Elemente zugreifen willst, musst du den -> und nicht den . benutzen:
r->bottom, r->top, etc.
-
jepp...
genau das war der fehler.
Hatte es grade selber gefunden.
Leider mag VB das trotzdem noch nich.
Trotzdem danke...
Ich kommr wohl nicht drumherum, sämtliche Inhalte des Structs bzw in VB des benutzerdefinierten Datentypes einzeln zu übergeben.
Greetz
Joey