4using namespace System::Runtime::InteropServices;
8 namespace DeepLearningCLI
11 static const char* string_to_char_array(String^
string)
13 if (
string ==
nullptr)
return nullptr;
16 IntPtr ptr = Marshal::StringToHGlobalAuto(
string);
17 if (ptr == IntPtr::Zero)
return nullptr;
19 const wchar_t* wideStr =
static_cast<const wchar_t*
>(ptr.ToPointer());
22 if (*wideStr == L
'\0')
24 Marshal::FreeHGlobal(ptr);
29 int sizeNeeded = WideCharToMultiByte(CP_UTF8, 0, wideStr, -1,
nullptr, 0,
nullptr,
nullptr);
32 Marshal::FreeHGlobal(ptr);
37 char* utf8Str =
new char[sizeNeeded];
40 Marshal::FreeHGlobal(ptr);
45 if (WideCharToMultiByte(CP_UTF8, 0, wideStr, -1, utf8Str, sizeNeeded,
nullptr,
nullptr) == 0)
48 Marshal::FreeHGlobal(ptr);
53 Marshal::FreeHGlobal(ptr);
Definition managed_object.h:60
ManagedObject(T *instance)
Definition managed_object.h:64
T * m_Instance
Definition managed_object.h:62
ManagedObject()
Definition managed_object.h:68
T * GetInstance()
Definition managed_object.h:86
virtual ~ManagedObject()
Definition managed_object.h:72