Ich habe das schon ziemlich oft recherchiert, bin aber zu keinem hilfreichen Ergebnis gekommen.
Ich versuche gerade, ein einfaches DirextX-Spiel für Windows 8 Metro zu programmieren, und bin darauf gestoßen _In_ eher viel. Ich frage mich nur, was es ist.
Außerdem habe ich viel von der Verwendung gesehen ^ als Zeiger * was ich seltsam fand. Darüber hinaus haben einige Klassen eine Schnittstelle von ref class MyClasswas meiner Meinung nach für die Lesbarkeit von C # ist.
Wie auch immer, jede Hilfe wäre brillant.
SomeType^ ist ein von C++/CLI verwalteter Zeiger. Das ist nicht C++.
– Chris
12. Juli 2012 um 17:33 Uhr
Keines davon ist wirklich C++. Sie sind C++/CLI oder vielleicht C++/CX (oder möglicherweise das ältere „Managed C++“). Alle paar Jahre erfindet Microsoft eine neue Sprache basierend auf C++, aber mit Erweiterungen für ihre „verwaltete“ Umgebung (.NET). Bisher hat keines davon viel Popularität erlangt (um es milde auszudrücken).
– Jerry Sarg
12. Juli 2012 um 17:34 Uhr
Dies könnte verwandt sein: Sollten wir verwenden Im statt __in?
– Desmond Hume
12. Juli 2012 um 17:34 Uhr
Da er Metro erwähnt, würde ich sagen, dass das Teil von C++/CX für WinRT ist…
– MFH
12. Juli 2012 um 18:49 Uhr
^ ist nicht ein Zeiger.
– IS4
21. März 2017 um 21:42 Uhr
James McNellis
Es ist ein SAL-Anmerkung, verwendet für die Codeanalyse. Die Anmerkungen selbst sind als Makros definiert, die in normalen Builds zu nichts erweitert werden.
Das ^ und ref class sind Merkmale von C++/CX, eine Reihe von Spracherweiterungen, die entwickelt wurden, um das Erstellen von Apps im Metro-Stil für Windows 8 in C++ zu vereinfachen. Beides ist kein Bestandteil von Standard-C++. Die Dokumentation (zuvor verlinkt) enthält Links zu Tutorials und Referenzen, die die Spracherweiterungen beschreiben.
Perfekte Antwort, wirklich zu schätzen.
– Infinity James
13. Juli 2012 um 11:56 Uhr
max
Ich denke (von einem schnellen Google), dass die _in_ gibt an, ob ein Parameter ein Ein- oder Ausgang ist (_out_) zu einer Funktion/Methode.
Das ^ ist ein verwalteter Zeiger (Garbage Collection Pointer, bezogen auf C++/CLI).
Ha, ich dachte, das sagte lnnicht in. Das ist in der Tat der Zweck von Microsoft.
// Input parameters --------------------------
// _In_ - Annotations for parameters where data is passed into the function, but not modified.
// _In_ by itself can be used with non-pointer types (although it is redundant).
// e.g. void SetPoint( _In_ const POINT* pPT );
#define _In_ _SAL2_Source_(_In_, (), _Pre1_impl_(__notnull_impl_notref) _Pre_valid_impl_ _Deref_pre1_impl_(__readaccess_impl_notref))
#define _In_opt_ _SAL2_Source_(_In_opt_, (), _Pre1_impl_(__maybenull_impl_notref) _Pre_valid_impl_ _Deref_pre_readonly_)
Diptendu
_Out_ bedeutet als Referenz übergebenes Argument. _In_ bedeutet das Gegenteil. (_Out_ x) und (&x) sind ähnlich.
SomeType^
ist ein von C++/CLI verwalteter Zeiger. Das ist nicht C++.– Chris
12. Juli 2012 um 17:33 Uhr
Keines davon ist wirklich C++. Sie sind C++/CLI oder vielleicht C++/CX (oder möglicherweise das ältere „Managed C++“). Alle paar Jahre erfindet Microsoft eine neue Sprache basierend auf C++, aber mit Erweiterungen für ihre „verwaltete“ Umgebung (.NET). Bisher hat keines davon viel Popularität erlangt (um es milde auszudrücken).
– Jerry Sarg
12. Juli 2012 um 17:34 Uhr
Dies könnte verwandt sein: Sollten wir verwenden Im statt __in?
– Desmond Hume
12. Juli 2012 um 17:34 Uhr
Da er Metro erwähnt, würde ich sagen, dass das Teil von C++/CX für WinRT ist…
– MFH
12. Juli 2012 um 18:49 Uhr
^
ist nicht ein Zeiger.– IS4
21. März 2017 um 21:42 Uhr