Си с нуля Николай gorl Андреев Хакер, номер #088, стр. 088-112-2 * Стартуй студию (или в случае 6.0 - сам си). * В появившейся среде жми File -> New -> Project. * Нас интересует обычное win32-приложение на си, поэтому переходи в закладку Visual C++ Projects и выбирай Win32 Project. Все остальное, предложенное студией, - ересь и рассмотру не подлежит. Фи. * Указывай внизу имя проекта и куда его плюхнуть, а затем стучи по кнопке OK. * Должен появиться ужасный Win32 Application Wizard, который, если оставить без внимания и сразу нажать на Finish, обеспечит тебя тонной чужого и совершенно бесполезного кода в своем проекте. В визарде переходи в закладку Application Setting. * Здесь тебе следует отметить, что приложение, которое ты создаешь, - Windows Application и что проект должен быть пуст (Empty project). Даже если ты хочешь консольное приложение - все так и оставь, я ниже объясню как к нему перейти. * После всего проделанного тобой должно появится пустое и серое окно студии. Ничего интересного не предвещающее, зато с новеньким проектом слева в Solution Explorer. * Жми правой клавишей на название проекта (не солюшена, а именно проекта) и выбирай Add -> Add new item. Мы хотим добавить в пустой проект файл, в котором мы, собственно, и будем писать нашу программу. * Выбирай С++ File, вбивай имя и жми OK. [первая программа] Теперь перед тобой открыт файл с расширением cpp, который будет скомпилирован, если ты полезешь в меню Build и наткнешься там на элемент Build <имя проекта>. Чтобы ты не думал, что я тебе лапшу на уши все это время вешал, показываю как этим пользоваться. Обозначаю сначала в программе хидер на все случаи жизни: #include <windows.h> Потом определяю пустую функцию, с которой начнется выполнение программы. У обычных приложений - это WinMain, у консольных - просто main. int WINAPI WinMain(HINSTANCE, HINSTANCE, PTSTR, int) {return 0;} Она ничего не делает, просто ноль возвращает. Да нам и не нужно чтобы она что-то делала. Хотя ради разнообразия можно вставить после первой фигурной скобки вызов функции MessageBox, чтобы не казалось, что мы все это время писали программу_которая_ничего_не_делает. Смотри: #include <windows.h> int WINAPI WinMain(HINSTANCE, HINSTANCE, PTSTR, int) { MessageBox(0, "Здраствуй, Мир!", "Ты прекрасен!", 0); return 0; } Если же ты ретроманьяк и хочешь консольное приложение, то нам придется вначале объяснить линкеру, что мы консольники, и немного изменить главную функцию. #include <windows.h> // для функции printf свой хидер #include <stdio.h> #pragma comment(linker,"/SUBSYSTEM:CONSOLE") int main(int argc, char **argv) { printf("Hello, world!"); return 0; } Прагма в пятой строчке определяет тип нашего приложения. С тем же успехом вместо CONSOLE там могло красоваться WINDOWS или NATIVE. Прагма - штука жутко полезная. Вот захочешь, чтобы твой helloworld 1Кб занимал, добавишь строку: |