C++'da Sıralamaya Genel Bakış
Karma modda bazen verilerinizi yerel ve yönetilen türler arasında sıralamanız gerekir.Visual Studio 2008 sıralama kitaplığı, basit bir şekilde verileri sıralamak ve dönüştürmek için size yardımcı olur.
Sıralama kitaplığını bir marshal_context Sınıfı içeren veya içermeyen ile kullanabilirsiniz.Bazı dönüştürmeler bir bağlam gerektirir.Diğer dönüştürmeler marshal_as işlevi kullanılarak uygulanabilir.Aşağıdaki tabloda; bağlam gerektiren ya da gerektirmeyen, hangi sıralama dosyasını dahil etmek zorunda olduğunuzu belirten geçerli desteklenen dönüştürmeler listelenmiştir.
Türünden |
Yazmak için |
Sıralama yöntemi |
Dosyayı dahil et |
---|---|---|---|
System::String^ |
const char * |
marshal_context |
marshal.h |
const char * |
System::String^ |
marshal_as |
marshal.h |
char * |
System::String^ |
marshal_as |
marshal.h |
System::String^ |
const wchar_t* |
marshal_context |
marshal.h |
const wchar_t * |
System::String^ |
marshal_as |
marshal.h |
wchar_t * |
System::String^ |
marshal_as |
marshal.h |
System::IntPtr |
TANITICI |
marshal_as |
marshal_windows.h |
TANITICI |
System::IntPtr |
marshal_as |
marshal_windows.h |
System::String^ |
BSTR |
marshal_context |
marshal_windows.h |
BSTR |
System::String^ |
marshal_as |
marshal.h |
System::String^ |
bstr_t |
marshal_as |
marshal_windows.h |
bstr_t |
System::String^ |
marshal_as |
marshal_windows.h |
System::String^ |
std::string |
marshal_as |
marshal_cppstd.h |
std::string |
System::String^ |
marshal_as |
marshal_cppstd.h |
System::String^ |
Std::wstring |
marshal_as |
marshal_cppstd.h |
Std::wstring |
System::String^ |
marshal_as |
marshal_cppstd.h |
System::String^ |
CStringT<char> |
marshal_as |
marshal_atl.h |
CStringT<char> |
System::String^ |
marshal_as |
marshal_atl.h |
System::String^ |
CStringT<wchar_t> |
marshal_as |
marshal_atl.h |
CStringT<wchar_t> |
System::String^ |
marshal_as |
marshal_atl.h |
System::String^ |
CComBSTR |
marshal_as |
marshal_atl.h |
CComBSTR |
System::String^ |
marshal_as |
marshal_atl.h |
Sıralamanın bir bağlamı gerektirdiği durum, yalnızca yönetilen yerel veri türlerinden sıralama yapmanız ve dönüştürdüğünüz yerel türün otomatik temizleme için bir yıkıcısı olmaması durumudur.Sıralanan bağlam tahsis edilen veri türünü kendi yıkıcısı içinde yok eder.Bu nedenle, bir bağlam gerektiren dönüştürmeler yalnızca bağlam silindiğinde geçerli olur.Sıralanmış değerleri kaydetmek için kendi değişkenleriniz için değerleri kopyalamanız gerekir.
[!NOT]
Dizenizin içerisine NULL'ları gömülü durumuna aldıysanız, dizenin sıralanmasının sonucu garanti değildir.Gömülmüş NULLları dizenin kesilmesine veya saklanmasına sebep olabilir.
Sıralama kütüphanesinin üst bilgileri msclr alt dizinindeki içerme dizininde bulunur.Bu örnek, msclr dizinine bir içerme üst bilgi bildirimini eklemeyi gösterir:
#include "msclr\marshal_cppstd.h"
Sıralama kitaplığı genişletilebilirdir, böylece kendi sıralama türünüzü ekleyebilirsiniz.Sıralama kitaplığı hakkında daha fazla bilgi için bkz. Nasıl yapılır: Sıralama Kitaplığını Genişletme.
Önceki sürümlerde, verileri Platform Çağırma ile sıralayabilirsiniz.PInvoke hakkında daha fazla bilgi için bkz. Yönetilen Koddan Yerel İşlevleri Çağırma.
Ayrıca bkz.
Görevler
Nasıl yapılır: Sıralama Kitaplığını Genişletme