Тема: Конвертировать CString в ACHAR* не получается???

Привет,
Подскажите плз новичку как правильно конвертировать CString в ACHAR*????
Студия 2005 и соотв ObjArx, проект в юникоде. Делаю из МСДН:

CString res("trata");
const size_t newsize = 100;
size_t origsize = _tcslen(res) + 1;
size_t convertedChars = 0;
wchar_t wcstring[newsize];
mbstowcs_s(&convertedChars, wcstring, origsize, res, _TRUNCATE);
wcscat_s(wcstring, L" (wchar_t *)");

Ругается:
'mbstowcs_s' : cannot convert parameter 4 from 'CString' to 'const char *'

Re: Конвертировать CString в ACHAR* не получается???

а WideCharToMultiByte пробовал?

Re: Конвертировать CString в ACHAR* не получается???

Или я не понял чего ты добиваешься или LPCTSTR(res) вернет const ACHAR * в случае если у тебя проект в unicode. Еще один вариант:

CString res;
// res уже присвоено значение
const ACHAR *ch = ((const ACHAR *)AcString(LPCTSTR(res)));

Re: Конвертировать CString в ACHAR* не получается???

#define BUFFER_SIZE 100
char *pMchar=(char *)malloc(BUFFER_SIZE);
size_t   st;
wcstombs_s(&st,pMchar,(size_t)BUFFER_SIZE,res,(size_t)BUFFER_SIZE);

Re: Конвертировать CString в ACHAR* не получается???

> Roman
как-то ты сильно перемудрил :)

CString str("aaa");
ACHAR wcstring[100];
wcscpy(wcstring,str);
acutPrintf(wcstring);

вполне нормально работает
а ошибка в четверном параметре говорит о том, что CString у тебя УЖЕ юникодовый.
в продолжение темы. конвертация из char в wchar

char str[100] ="aaa";
ACHAR wcstring[100];
mbstowcs(wcstring,str,100);
acutPrintf(wcstring);

Re: Конвертировать CString в ACHAR* не получается???

CString res(_T("trata"));
И ничего не надо конвертировать

Re: Конвертировать CString в ACHAR* не получается???

не подскажите что у меня не так? Пробую варианты:
1)CString res;
// res уже присвоено значение
const ACHAR *ch = ((const ACHAR *)AcString(LPCTSTR(res)));
при компиляции выдает ошибку: не может преобразовать из LPCTSTR в AcString
2)CString str("aaa");
ACHAR wcstring[100];
wcscpy(wcstring,str);
acutPrintf(wcstring);
опять ошибка: wcscpy не может преобразовать параметр 2 из CString в const wchar_t*

Re: Конвертировать CString в ACHAR* не получается???

> Игорь
1) Версия AutoCAD, ObjectARX, VS?
2) Как создавал проект (при помощи ObjectARX Wizard или нет)?

Re: Конвертировать CString в ACHAR* не получается???

1) VS 2005, ObjectARX 2008, Акад 2008
2) Проект создавался ObjectARX Wizard в VS/NET 7.0. Сейчас пытаюсь перевести проект в VS 2005.

Re: Конвертировать CString в ACHAR* не получается???

> Игорь
Проект необходимо "мигрировать". Есть два основных варианта:
1) Создать проект с нуля в ObjectARX Wizard 2008 и добавить в него свои файлы (.cpp, .h и т.д.)
2) Преобразовать существующий проект при помощи VisualTeefy: http://through-the-interface.typepad.co … ol-fo.html

Re: Конвертировать CString в ACHAR* не получается???

Залезь в свойства проекта.
Configuration properties\General\Character Set = Use Unicode Character Set
C\C++\Language\Treat wchar_t as Built-in Type = Yes
Это так что пришло на ум

Re: Конвертировать CString в ACHAR* не получается???

CString str;
//Инициализация
str.GetBuffer(); //ACHAR* нужной длины.
str.ReleaseBuffer();

Re: Конвертировать CString в ACHAR* не получается???

Получилось. Всем спасибо за помощь