Конвертация строк... ПОМОГИТЕ!
Подскажите пожалуйста новичку, как произвести конвертацию из формата строки VC++ 2005 (String ^) в обычный формат char *? Мне просто необходимо считать из TextBox имя файла, а затем открыть его для записи? Может быть вы подскажете мне более рациональный способ? Заранее благодарю!
(String ^) -- это что????? в vс++ есть CString, есть std::string. крышечки вообще в синтаксисе языка си не присутствуют. судя по раскладке клавиатеры, может быть имелось в виду CString& ?
Нет, это не опечатка! В VC++ 2005, в обычном WinForm Application нету CString, а когда я пытался писать просто String, при компиляции, он выдавал мне ошибку, якобы так не пойдёт, ставь "^"! И все Label, TextBox и всякие другие элементы по-моему работают именно с этим форматом? Дак как же всё-таки из него сделать char*?
Windows Forms это библиотека компонентов .NET
Дак я и не скрываю, что пишу, юзая .NET. Но должен же быть способ чтобы перевести String ^ в char*?
Лазяя в MSDN, я нашёл какой-то способ: там описывалось перевод String ^ сначала в wchar_t* а затем уже в сам char*. Я, конечно, попробовал это дело, но у меня ничего не вышло - в конечной переменной от пети к файлу осталось только одна первая буква! А нельзя никак сразу считывать из TEXTBOXa в char? По своему прошлому опыту знаю, что в Билдере так можно (только прошу, не отправляйте меня в Билдер :)), а что же в VC++ 2005? please...
по поводу языка -- ты на C#? а вообще, я не пойму зачем тебе в .NET понядобился char*. ты WinAPI пользуешь? зачем? в .NET нету классов для работы с файлами??
я чёт нифига не пойму :)
Чё-то я уже сам перестал что-либо понимать! Вы поймите, я новичок! Конечно, это не даёт мне права говорить всякие тупости, но всё-таки простить можно.... Дак вот.. Я пишу в VC++ 2005 и, как я понимаю, создавая проект WinForm, приложение автоматически использует .NET? Я что-то не так понимаю? Из всего этого мне нужно лишь организовать работу с файлами, чего я безуспешно пытаюсь сделать! Пытался использовать стандартную функцию для этого fopen, но она просит char, которого у меня нету! ЧТО ДЕЛАТЬ-ТО?? ПОМОГИТЕ, ПОЖАЛУЙСТА!!!
С++ -- довольно не новый язык программирования. если речь идёт о Visual Studio, то разработка ведётся в основном с использованием библиотек MFC\ATL. позволяет создавать оконные приложения виндовс(WinAPI\MFC), консольные приложения, динамические библиотеки (DLL), COM-объекты (ATL\MFC)
C# -- язык из серии .NET-языков. позволяет создавать оконные приложения (Windows Forms), веб приложения (Web Forms), библиотеки классов, COM-компоненты.
C++ with managed extension -- вариация оригинального языка C++, код которого компилируется в .NET-код (MSIL)
во-первых определись, что ты ХОЧЕШЬ использовать. во-вторых -- проект какого типа ты создал.
Ну я на 100 % уверен, что это не C#. Я слашал про этот язык, это что-то типа синдиката C++ и Java! НЕТ! Я пишу в VC++. А вот ПЕРВОЕ или ТРЕТЬЕ - для меня это вопрос! Ну посуди сам! Захожу в Visual C++ 2005, выбираю NEW->Project->Windows Forms Application. О чём это говорит? Помоги разобраться? Уже второй вопрос возник....
если тебе именно плюсы надо, то выбирай Visual C++\MFC, а справа MFC Application
Слева я выбрал Visual C++ (это единственная главаня подкатегория)->СLR. А ещё там есть Win32 и General, но ни там, ни там нету оконных приложений. Дак что же обозначает CLR? Наверное отгадка в этом???.....
Common Language Runtime -- общая среда выполнения (.NET приложений)
наверное ты слишком обрезал себе студию при установке
Цитата:
Дак что же обозначает CLR
Common Language Runtime - независящая от языка среда исполнения, которая управляет выполнением кода .NET
Цитата: DeFaCe
Слева я выбрал Visual C++ (это единственная главаня подкатегория)->СLR. А ещё там есть Win32 и General, но ни там, ни там нету оконных приложений. Дак что же обозначает CLR? Наверное отгадка в этом???.....
Почему это нету там их? Определись, что именно ты хочешь писать, и тебе скажут - как. Если тебе надо простейшее оконное приложение на С++, как я понял из твоих творческих метаний, то можно win32 -> win32 project, и далее ты пишешь на WinAPI, либо MFC -> MFC Application, и создаешь оконное приложение с использованием MFC - Microsoft Foundation Classes.
Возвращаясь к теме. А что, функция OemToChar там не работает?
Спасибо, что вернулись к теме.. Я нашёл более-менее подходящий способ по чтению текста из textbox в переменную. Я сначала сохраняю этот текст в переменную типа String ^, а затем конвертирую её в переменную типа wchar_t. Далее я открываю файл для записи функцией _wfopen(), и пытаюсь записать в неё что-нибудь! Однако тут появляется ещё одна проблема! В прецессе отладки, когда дело доходит до строки записи в файл: fwprintf(f,L"HELLO!");, отладчик выдаёт ошибку: "Debug Assertion Failed! ..... Expression: (str!=NULL)" В чём проблема не понимаю! Никакой переменной str у меня нету! Помогите разобраться!