Referenzen in Delegates **gelöst**
-
public delegate void tdelDllResultHandler(tResultFlag ResultFlag, tExtendedResultFlag ExtendedResultFlag, tResultListEntry ^rReultListEntry);
public void DllResultHandler(DllDotNet.tResultFlag ResultFlag, DllDotNet.tExtendedResultFlag ExtendedResultFlag,DllDotNet.tResultListEntry rResultListEntry)
oder
public void DllResultHandler(DllDotNet.tResultFlag ResultFlag, DllDotNet.tExtendedResultFlag ExtendedResultFlag,DllDotNet.tResultListEntry ^rResultListEntry)
beide führen zu Fehlern
-
Korrekt ist:
public void DllResultHandler(DllDotNet.tResultFlag ResultFlag, DllDotNet.tExtendedResultFlag ExtendedResultFlag,DllDotNet.tResultListEntry rResultListEntry
Was kommen für Fehler?
Das andere ist ja eben gar kein C# Code.
-
Fehler CS0123: Keine Überladung für "DllResultHandler" stimmt mit dem Delegaten "DllDotNet.delDllResultHandler" überein.
-
Dann wird wohl das Mapping eines Typen anders sein als angegeben.
Wie sind in C++/CLI die Parameter Typen des Delegaten definiert?
Simon
-
public value struct tResultListEntry { unsigned long udwTimeStamp; unsigned short uwReadCount; unsigned char ubCountWords; array<unsigned short> ^puwData; };
-
Aber das ist ja nur einer... die andern?
-
Mit dem ValueType (value struct) gehts nicht, weil der ValueType geboxt wird und es eine "komische" Signatur ergibt.
Du kannst ganz einfach aus dem value struct ein ref struct machen.
(Die Semantik ändert von Value auf Reference!).Simon
-
was ist den der unterschied zwischen dem value und ref?
-
Das findest Du bestimmt selbst mit ein wenig Googeln raus...
Ausserdem habe ich schon eine Erklärung abgegeben.
Simon
-
mit ref geht es
ich habe mal diese Seite gefunden http://www.codeproject.com/KB/cs/Types.aspx
danach besteht der einzige unterschied zwischen ref und value, dass wenn man
a=b;
macht bei ref die Referenz kopiert wird und bei value der Kopierkonstruktor gerufen wird.
Ist das korrekt?
-
danach besteht der einzige unterschied zwischen ref und value, dass wenn man
a=b;
macht bei ref die Referenz kopiert wird und bei value der Kopierkonstruktor gerufen wird.
Das ist nicht der einzige Unterschied.
-
http://msdn.microsoft.com/en-us/library/s1ax56ch.aspx
http://msdn.microsoft.com/en-us/library/490f96s2.aspx
MSDN is your friend...