| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Отмена командной строки в консольком приложении |
| Автор: KaraKum 11.3.2008, 20:44 |
| Доброе время суток. Создал консольное приложение через Visual C++ 7 на основе GLUT OpenGL и, соответственно, помимо окна OpenGl открывается командная строка. Посоветуйте, пожалуйста, как можно отключить командную строку? |
| Автор: Solomon 11.3.2008, 21:01 |
| Ну дык.. тыже консольное приложение создаеш... создай Win32 приложение. и небудет консоли... |
| Автор: Rickert 12.3.2008, 05:31 |
| Solomon, +тыща |
| Автор: KaraKum 12.3.2008, 07:55 | ||
| Пробовал. Вот функция main() для OpenGL приложения:
В функции WinMain() нет параметров, что нужны для glutInit(). Я знаю как создавать Windows-приложения без использования библиотеки GLUT, то есть с помощью функций CreateWindow(), WndProc() и так далее, но хотелось бы с вышеописанным кодом - коротко и удобно, да и во всех обучающих книгах программы создаются именно таким способом, к тому же такой код будет значительно легче перевести на другие платформы. Если есть какой-нибудь способ отменить консоль или заставить код работать через Windows-приложение - скажите, плиз. |
| Автор: just_geek 12.3.2008, 11:56 | ||
создать Win32 приложение, а argc & argv можно получить так
|
| Автор: KaraKum 12.3.2008, 12:12 | ||
Изменил функцию main() на WinMain() и вот что изменилось в коде:
Программа компилируется и компонуется, но при старте обнаруживается ошибка, однако в отладочном режиме прога нормально работает. Скажите, что не так? |
| Автор: just_geek 12.3.2008, 12:15 | ||
nCmdShow НЕ кол-во параметров это
т.е. это должно выглядеть примерно так: 1. конвертируем lpCmdLine в LPWSTR 2. вызываем LPWSTR cmdline = CommandLineToArgvW(..., &argc), получаем то что нужно 3. конвертируем cmdline в LPSTR 4. glutInit(&argc, &cmdline) |
| Автор: KaraKum 12.3.2008, 12:54 | ||
| Пока предыдущее сообщение писал - ты уже успел ответить. Отредактировал код и в итоге отличительная часть вышла такой:
Если argv не определить как "Window", то выходила ошибка при запуске проги: ...argv was used without being instulled. Вобщем всё работает, спасибо за помощь. И ещё такой вопрос: как с помощью библиотеки GLUT сделать так, чтобы окно открывась как WS_POPUP, то есть на весь экран и, соответственно, без заголовка и элементов проводника? |
| Автор: just_geek 12.3.2008, 13:23 |
| Вообще то если argv = NULL, то первое выполнение WideCharToMultiByte вернет размер буфера, под который надо выделить память, затем выделяешь память, и вызываешь повторно WideCharToMultiByte. а чем glutFullScreen не устраивает? |
| Автор: KaraKum 12.3.2008, 13:42 |
| Не мог нигде найти описания функций GLUT - только что нашёл на сайте OpenGL.org и всё встало на свои места. Вобщем, большое спасибо за помощь. |