Как делают я преобразовываю Систему:: String^ к символу константы*?

Вы также можете заключить исключение в другое И сохранить исходную трассировку стека, передав исключение как Throwable в качестве параметра причины:

try
{
   ...
}
catch (Exception e)
{
     throw new YourOwnException(e);
}
7
задан Jon Cage 8 July 2009 в 14:23
поделиться

3 ответа

using namespace System::Runtime::InteropServices;
const char* str = (const char*) (Marshal::StringToHGlobalAnsi(managedString)).ToPointer();

От Dev Shed .

13
ответ дан 6 December 2019 в 06:50
поделиться

Как упоминает mcandre , Marshal :: StringToHGlobalAnsi () является правильным. Но не забудьте освободить вновь выделенный ресурс с помощью Marshal :: FreeHGlobal () , когда строка больше не используется.

В качестве альтернативы вы можете использовать msclr :: interop :: marshal_as шаблон для создания строкового ресурса и автоматического освобождения его, когда вызов выходит из области действия ресурса.

12
ответ дан 6 December 2019 в 06:50
поделиться

В обзоре маршаллинга в C ++

есть список того, какие типы требуют преобразования.
1
ответ дан 6 December 2019 в 06:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: