| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Работа с IDE Visual C++ 2008 |
| Автор: WolfAlone 15.9.2009, 21:50 | ||
| Здравствуйте! Щас задам тупой вопрос Сел за изучение VC++2008. Создал проект, Simple1. Слева, в "Solution explorer" находиться список файлов проекта. 1. Открыл файл Simple1.cpp, записал туда класс (допустим, вот такой):
2. При попытке редактора кода формы - открывается файл Form1.h, в который собственно и пишется код формы. На сколько я понял - код программы (классы, функции и пр.) должен быть именно в файле Simple1.cpp (в моём случае), а вызываться эти самые функции и методы классов - должны как раз из файла Form1.h При попытке сделать так (в файле Form1.h): myClass mcl1; - ошибка, говорит, что не найден такой идетификатор (undeclared identifier); Вопрос: как правильно это нужно делать? P.S. Заранее благодарю! |
| Автор: narKoD 15.9.2009, 23:48 | ||||
| как я понял, тебе надо создать 2 файла: Simple1.h и Simple1.cpp Simple1.h
Simple1.cpp
затем вставить #include "Simple1.h" в остальные файлы |
| Автор: Acer 16.9.2009, 08:52 | ||||
| Классы нужно описывать в заголовочных файлах, то есть не в Simple1.cpp, а в Simple1.h. Если методы inline или слишком простые, то можно их реализацию сделать в заголовке и тогда не использовать Simple1.cpp. Например
|
| Автор: WolfAlone 16.9.2009, 10:22 |
| Наверное я всё-таки не совсем правильно поставил вопрос... Постараюсь уточнить! Когда я работал с Borland C++ Builder - такого вопроса не возникало, там всё как-то более ли менее понятно. Но мне совершенно не нравиться, как Builder себя порой ведёт. Какой-то он мальца кривоватый (сугубо личное ИМХО!). Решил взяться за Visual C++ 2008. В этом сообщении я прикрепил скрин, с Solution Explorer и рабочей областью (редактором кода). Вопрос собственно вот в чём: В проекте имеются 2 файла, которые меня интересуют (в данном случае это файл Form1.h). Когда я ставлю на форму кнопку, и 2 раза на неё щёлкаю (в режиме конструирования формы) - открывается редактор кода (скрин в этом сообщении). Это код располагается в файле Form1.h. Как я понимаю, код классов и функций - должен располагаться в файле Simple1.cpp? |
| Автор: WolfAlone 16.9.2009, 10:42 |
| В это сообщение прикрепляю второй скрин. В этом скрине файл Simple1.cpp, в котором как я понимаю должны содержаться классы и функции, которые мне нужны. Так же, там содержится функция main(); Вопрос: Если класс объявлен в файле Simpel1.cpp, а код обработчика события "нажатие на кнопку" - находиться в файле Form1.h. Как мне использовать этот класс? (В моем примере - myClass). |
| Автор: Acer 16.9.2009, 15:40 |
| Дык, это получается .Net, а не С++ |
| Автор: WolfAlone 16.9.2009, 15:55 |
| А разве этот же компилятор (эта же среда) не умеет компилировать обычные приложения (без dot net)? Или приведённый мной проект полностью .Net зависимый!? |
| Автор: Acer 16.9.2009, 16:36 |
Вот это .Net![]() |
| Автор: WolfAlone 17.9.2009, 08:06 |
| Уважаемый Acer, я в этом ещё совсем дуб! Вы не могли бы подсказать, можно ли создать в Visual C++ 2008 независимый от .net (и если да, то как)? Только что попробовал создать "Win32 Project". Результаты не впечатлили! После запуска программы - появилась форма аля Borland С++ для Win16 (Windows 3.11). Скажите пожалуйста, кто знает, насколько программы под .net работают медленнее обычных? Насколько больше они подвержены "взлому" (как я понимаю, .exe под .net - представляет собой промежуточный код, который затем интерпретируется)? Если кто-нибудь ставил под *nix "MONO" - подскажите пожалуйста, насколько хорошо осуществлена поддержка .net в MONO и какую версию .net он в данный момент поддерживает? Ещё очень интересует, существуют ли реализации поддержки .net для других ОС? |
| Автор: Acer 17.9.2009, 09:00 | ||
File -> New -> Project... -> Visual C++ -> Win32 Project Получится гуи-проект. Там .Net не будет. Добавлено через 2 минуты и 7 секунд На сколько я понял по последнему посту, Вы хотите писать на C#(спрашивали о MONO). Потому, создайте тему лучше в соответствующем разделе, дабы не флудить тут. |
| Автор: WolfAlone 17.9.2009, 09:34 |
| Нет, я не хочу писать на C#! Я хочу писать на C++ под Win32 и *nix системы. Под .Net существует ведь не только C# (хотя он считается основным как я понял), есть же ведь ещё и C++ .net, Visual Basic.net и даже Delphi .net есть (по моему). В данный момент стоит задача: в кратчайшие сроки разработать небольшую программу для Win32 с GUI интерфейсом, желательно на C++. Только что почитал про Bulder... Borland его что-то совсем обидел! Код, герерирумый Builder'ом - работает медленнее Delphi'йского!!! (это *опа Из всего известного мне, остался лишь: wxDev-C++, который выдает на выходе минимум 3Мб, что не есть хорошо и Visual C++ 2008 - который генерирует страшное окно, которое не поддаётся визуальному редактированию... Вопрос: что делать? Неужели Visual C++ 6 - единственная среда разработки, которая генерирует более ли менее валидный код (.exe), не привязана к dot net, и обладает визуальным конструктором форм? И которую при всех "достоинствах" - нельзя лицензировать... - что тоже не есть хорошо! |
| Автор: jonie 17.9.2009, 10:43 |
| чет вы все в кучу смешали. то что сгенирировала вам студия это проект winAPI формы. То что генерирует VC6(вероятно) есть диалоговое приложение, использующее ресурсы. используйте HTML и не парьтесь. Например http://www.terrainformatica.com/htmlayout/main.whtm |
| Автор: WolfAlone 17.9.2009, 11:17 |
| Зачем мне HTML? Вопрос: есть ли возможность визуального редактирования этого самого "проекта winAPI формы"? Или всё как в 80-х годах, нужно руками писать? |
| Автор: jonie 17.9.2009, 14:12 | ||||
|
| Автор: WolfAlone 17.9.2009, 15:43 |
| На мой взгляд HTML изначально был создан не для этого! Хотя, конечно, луноходом теоретически тоже можно поле вспахать... Про DotNet прочитал, производительность не впечатлила... По крайней мере мне не понравилась, по сравнению с производительностью "стандартных" приложений. Скажите пожалуйста, а возможно ли программы созданные в Visual C++ 6 (с MFC) откомпилировать через бесплатный Visual C++ ToolKit 2003? Или через какой-нибудь другой компилятор? Ещё очень интересует, может кто-нибудь может подсказать платный/бесплатный компилятор с IDE-средой, для рисования форм? Интересует собственно только базовый набор т.н. "компонентов": кнопки, textBox'ы, и пр. Ничего дополнительного типа "готовые компоненты для работы с БД" - не требуется... P.S. wxDev-C++ не впечатлил размерами выходного файла... |
| Автор: WolfAlone 17.9.2009, 20:32 |
| P.S. Borland C++ bulder - не устраивает, виду того (опять же, ИМХО сугубо личное) - генерируемый им код - тормознее Delphi'йского! (Я лучше Object Pascal выучу, чем буду в Builder'е писАть!) Не ужели нет ни одного компилятора С++ с IDE, которая генерирует формы/кнопки на WinAPI без лишнего мусора? (и желательно без MFC и прочих "гадостей" На мой взгляд - это полный непорядок! Может есть какие-нибудь готовые классы для построения форм, кнопок, чекбоксов, радиоБатонов, и других элементарных компонентов есть? Желательно, работающие через Win32API. |
| Автор: jonie 17.9.2009, 20:35 | ||||||||
Добавлено через 53 секунды
|
| Автор: WolfAlone 17.9.2009, 22:13 |
| Уважаемый jonie! Проблема в том, что как раз этот самый Visual C++ 2008 Express Edition - как я понял, рисует диалоги только под .Net. При попытке создать Win32 Project и компиляции оного - появляется окно в стиле Borland C++ для Windows 3.1, которое не поддаётся визуальному редактированию! P.S. Ушёл читать про WTL. Добавлено через 3 минуты и 24 секунды Надыбал в гугле: Что такое WTL? Это новая каркасная библиотека для VC++. Вот как она расшифровывается. WTL - Windows Template Library. Это набор классов основанный на ATL. WTL+ATL представляет собой архитектуру для создания приложений базирующихся на модели COM. Так как ATL это совсем тонкая обертка COM, то используя эту библиотеку COM надо знать хорошо. На данный момент эта библиотека свободно распространяется. В чем ее преимущества ? Это очень компакный код. Не требуется run-time DLL (msvcrt.dll). Пустое SDI приложение, например, всего 24К. Я так воспринимаю, что она создана для того, чтобы писать очень компактные приложения в расчете на распространение через интернет. Скачать ее можно вот отсюда http://msdn.microsoft.com/code/sample.asp?url=/msdn-files/027/001/586/msdncompositedoc.xml. Размер около 300 KB в архиве. После распаковки 1.2 MB. Супер!! Очень вдохновило!! А как её прикрутить к Visual Studio 2005/2008 Express? Добавлено через 3 минуты и 52 секунды P.S. Новая она видимо была во времена Windows 98 |
| Автор: WolfAlone 8.4.2011, 09:40 |
| SVN74, благодарю за информацию. Вопрос закрыт. |