Я создаю «HelloWorld» в C ++ и компилирую / запускаю в VS / Windows.Когда я пытаюсь скомпилировать его под Linux / GCC, он, очевидно, выдает множество ошибок.Проект консоли Windows по умолчанию включает в себя файлы, специфичные для Windows;но если просто создать «пустой проект», он выдаст кучу ошибок компоновщика / сборки.Каковы наилучшие методы сохранения переносимости моего кода?
Довольно сложно поддерживать подлинную переносимость кода, если вы пишете приложения для Windows.Стандартный C ++, очевидно, будет работать на любой платформе, но Linux не может запускать приложения Windows, и наоборот.Помните, что консольные приложения также считаются приложениями Windows.Они более не «чисты» только потому, что они основаны на тексте, а не на графике.Приложения Windows имеют собственную точку входа, отличную от стандартной функции main
, которая есть в ANSI C ++ (технически, main
все еще существует, но она скрыта и вызывается внутренне библиотеками Windows).
Лучшеене нужно указывать ссылки на заголовки Windows.К сожалению, вы не будете очень довольны результатами.Все, что вы сможете сгенерировать - это библиотечный код.Вы не можете получить пользовательский интерфейс на экране, если не используете функции Windows для этого.
«Пустой проект» - это то, что он говорит - пустой.Я предполагаю, что ошибки сборки связаны с тем, что вы пытаетесь вызвать функции, которые нигде не определены.Вы обнаружите, что вам нужно включить windows.h
, чтобы начать работу, что мгновенно делает ваш код непереносимым.
Почему он создает 47 файлов для 8 строк кода?
Это, очевидно, преувеличение;Ни один из волшебников не производит столько кодовых файлов. Особенно , а не «Пустой проект», который вообще ничего не создает.
Консольное приложение Win32 включает в себя следующие 5 файлов:
stdafx.h
и stdafx.cpp
- эти файлы используются для включения «предварительно скомпилированных заголовков», что означает, что Visual Studio будет компилировать все ваши заголовки один раз и только перекомпилировать их при их изменении, а не перекомпилировать их при каждой сборке проекта.,Раньше это обеспечивало огромное повышение скорости, и все еще работает в больших проектах.Возможно, вам не нужно или не нужно заботиться об этом для небольших проектов, но неплохо бы ознакомиться с их использованием, если вы собираетесь разрабатывать в Visual Studio.
Файл targetver.h
, единственная цель которого - указать самую раннюю версию Windows, на которой вы хотите, чтобы ваше приложение работало.Это необходимо, поскольку более поздние версии Windows добавляют дополнительные функции, которые не были доступны в предыдущих версиях.Ваше приложение не будет работать, если вы ссылаетесь на функции или библиотеки, которые не существуют.Настройте это один раз и затем забудьте об этом.
A <projectname>.cpp
файл, который является кодом реализации для вашего приложения.Это довольно стандартная вещь - она включает в себя функцию _tmain
, которая является точкой входа для консольного приложения.
A ReadMe.txt
файл, который вы можете немедленно удалить.Он содержит некоторую вводную информацию и описывает файлы, которые были добавлены в ваш проект.(Да, прочитав это самостоятельно, вы могли бы ответить на этот вопрос.)
Приложение Win32 будет иметь еще несколько файлов, но большинство из них тоже.В частности, вы увидите файл ресурсов (с расширением .rc
), который содержит значки, диалоги, растровые изображения, курсоры и т. Д., Используемые в вашей программе.
Если вам не нравится эта структураВы можете отказаться от использования мастера или изменить его самостоятельно.В этом нет ничего каменного.
Как вы форматируете код?Вы можете сделать Edit-> Format Selection, но горячие клавиши не работают?
Форматирование кода работает нормально.Я не уверен, почему люди говорят вам, что Visual Studio не поддерживает это, или что вам потребуется сторонний плагин.Там нет команды «Формат документа», как в C #, но команда «Выбор формата» работает просто отлично.Единственное отличие состоит в том, что вы должны выбрать что-то, чтобы включить его.
Расширение клавиатуры по умолчанию для этой команды: Ctrl K , Ctrl + F .Это также работает отлично, прямо из коробки.Мой типичный рабочий процесс - сначала нажать Ctrl + A , чтобы выбрать все.
Как вывести в окно 'Output' VS?(как eclipse, когда вы запускаете консольное Java-приложение)
Я не знаю, что делает Eclipse, и ничего не знаю о Java.Что вы хотите это сделать?Когда и какие вещи вы хотите записать в окно «Вывод»?Консольное приложение будет запускаться в окне консоли, а не в окне «Вывод».Это не то, для чего это.
Предназначен для отладки.Функция OutputDebugString
является одним из способов ее использования.Вывод стандартного ключевого слова cerr
должен автоматически перенаправляться в окно «Вывод».
Каждый раз, когда я перезагружаюсь, он продолжает возвращать мое «Расположение проекта» в мой «домашний каталог».Как вы меняете это?Это ошибка?Потому что это Express Edition?
Это не ошибка, это особенность.Visual Studio предназначена для работы с проектами и решениями, а не с одноразовыми файлами кода.Поэтому по умолчанию вам предлагается указать папку проекта, место для хранения ваших файлов.А что может быть лучше для расположения по умолчанию, чем ваша домашняя папка?
Если вам не нравится это местоположение, вы можете изменить его.В меню «Инструменты» выберите «Параметры».Разверните категорию «Проекты и решения» и щелкните элемент «Общие».Затем измените путь к «Расположение проектов» (верхнее текстовое поле).Не может быть намного проще, чем это.
Есть ли способ не дать ему переключиться в режим отладки при запуске?
Честно говоря, я не понимаю, какэтот вопрос вообще имеет смысл.Когда вы запускаете приложение с подключенным отладчиком, Visual Studio переключается на другой макет окна, специально оптимизированный для отладки. Я только что ответил на аналогичный вопрос .В результате, нет никакого способа сказать Visual Studio использовать одну и ту же компоновку окна как для дизайна, так и для представления отладки, но я также не могу представить, зачем вам это нужно.Разные вещи полезны, в зависимости от того, что вы в данный момент делаете.
Два макета окна настраиваются, и ваши изменения запоминаются.Я настроил мой сильно из настроек по умолчанию;очень вероятно, что ваши вкусы также различаются.Есть много замечательных функций, таких как окно «Locals», которое показывает список всех значений локальных переменных в области видимости в точке, где вы врываетесь в выполнение вашей программы.
Также помните, что по умолчаниюКонфигурации сборки «Debug» и «Release» не имеют ничего общего с тем, будет ли Visual Studio автоматически подключать отладчик к процессу вашего приложения.Если вы хотите запустить ваше приложение без подключенного отладчика, выберите «Запуск без отладки» в меню «Отладка» или нажмите Ctrl + F5 .Есть много побочных эффектов, и это, вероятно, не то, что вы хотели.Без отладчика вы теряете большую часть того, что Visual Studio предоставляет вам в качестве IDE.Вы также можете просто запустить приложение из Windows Explorer, даже не запуская VS.
Наконец, если вы предпочитаете Eclipse (или, по крайней мере, уже привыкли к его нюансам и предпочитаете не изучать Visual Studio),Вы все еще можете использовать его для разработки C ++. Скачать здесь .