БлогNot. Строки C++/CLI и нормальные...

Строки C++/CLI и нормальные...

Managed C++ провалился, в первую очередь, из-за дикого синтаксиса. По крайней мере, мне так кажется. Туда же идёт и C++/CLI... Зачем он вообще нужен? Возможно, полезную сферу сему продукту можно найти в "приклеивании" старых C++-библиотек и кодов к современным интерфейсам. Ну, если мало ABI с Platform Invoke.

Мда, на самом деле, хотел пару строк о строках для памяти вбить:

Преобразовать System::String в "прибитую" wide char строку (wchar_t *)
System::String ^ s = "String";
pin_ptr <const wchar_t> wchar_s = PtrToStringChars (s);

Подключить

#include <vcclr.h>

глобально, то бишь, в начале файла до всех прагм.

При "прибивании" объекту запрещается перемещаться в куче при сборке мусора.

Это полная кака, так как куча фрагментируется и "прибивание" потом мешает сборщику мусора.

Преобразовать System::String в строку ANSI C
using namespace Runtime::InteropServices;
System::String ^s="String";
const char *p = (const char*) (Marshal::StringToHGlobalAnsi (s)).ToPointer ();
Преобразовать ANSI-строку в System::String
const char * ptr = "ANSI";
System::String ^ str = gcnew System::String (ptr);

31.01.2014, 22:36 [11626 просмотров]


теги: textprocessing c++ программирование studio c++/cli

К этой статье пока нет комментариев, Ваш будет первым