Здравствуйте, ak_miass, Вы писали:
_>Здравствуйте, yurikl, Вы писали:
Y>>Подскажите: как в VC++.NET осуществить приведение типов System::String к char*.
_>System::Runtime::InteropServices::Marshal::StringToHGlobalUni -> _>System::IntPtr::ToPointer -> _>WideCharToMultiByte -> _>System::Runtime::InteropServices::Marshal::FreeHGlobal.
Здравствуйте, ak_miass, Вы писали:
Y>>Подскажите: как в VC++.NET осуществить приведение типов System::String к char*.
_>System::Runtime::InteropServices::Marshal::StringToHGlobalUni -> _>System::IntPtr::ToPointer -> _>WideCharToMultiByte -> _>System::Runtime::InteropServices::Marshal::FreeHGlobal.
Здравствуйте, ak_miass, Вы писали:
_>Здравствуйте, yurikl, Вы писали:
Y>>Подскажите: как в VC++.NET осуществить приведение типов System::String к char*.
_>System::Runtime::InteropServices::Marshal::StringToHGlobalUni -> _>System::IntPtr::ToPointer -> _>WideCharToMultiByte -> _>System::Runtime::InteropServices::Marshal::FreeHGlobal.
Воспользовался указанными функциями, а все равно ничего не получается.
Может, где-то я ошибку допустил. Вот код:
// charstring — результат конвертации
// cl — длина charstring в байтах
// stringW — строка источник
//
void StringToChars (char* charstring, unsigned int cl, System::String^ stringW)
{
size_t ll = stringW->Length;
System::IntPtr ipt = System::Runtime::InteropServices::Marshal::StringToHGlobalUni(stringW);
//System::IntPtr::ToPointer
void* pt = ipt.ToPointer();
LPBOOL bb = false;
WideCharToMultiByte(CP_ACP,WC_DEFAULTCHAR,(LPCWSTR)pt,ll,charstring,cl,"_",bb);
System::Runtime::InteropServices::Marshal::FreeHGlobal(ipt);
return;
}
Подскажите, что я делаю не правильно.
Заранее благодарен.
Здравствуйте, ak_miass, Вы писали:
_>Здравствуйте, yurikl, Вы писали:
Y>>Воспользовался указанными функциями, а все равно ничего не получается.
_>Так работает? _>