Страница 1 из 1

Компановка программ в VC++

Добавлено: 24 окт 2005, 07:14
svetl
есть з файла : как сделать загрузочный модуль ?
1-ый
// TIMEl.H
// Объявление класса Time.
// Функции-элементы определены в TIME.CPP
// Предотвращение многократного включения заголовочного файла
#ifndef Time1.h
#define Time1.h

// Определение абстрактного типа данных Time
class Time
{ public:
Time(); // конструктор
void setTime(int, int, int);
// установка часов, минут,
// секунд
void printMilitary(); //печать времени в военном формате
void printStandard(); //печать времени в стандартном формате
private:
int hour; // 0 - 23
int minute; // 0 - 59
int second; // 0 - 59
};
#endif


2-й

// TIME1.CPP
// Определения функций-элементов для класса Time.
#include <iostream.h>
#include "Time1.h"
// Конструктор Time присваивает нулевые начальные значения каждому //элементу данных. Обеспечивает согласованное начальное состояние //всех объектов Time
Time::Time() { hour = minute = second = 0; }

// Задание нового значения Time в виде военного времени.
// Проверка правильности значений данных. Обнуление неверных
//значений.


void Time::setTime(int h, int m, int s)
{
hour = (h >= 0 && h < 24) ? h : 0;
minute = (m >= 0 && m < 60) ? m : 0;
second = (s >= 0 && s < 60) ? s : 0;

}
// Печать времени в военном формате
void Time: :p rintMilitary()
{
cout << (hour < 10 ? "0" : "") << hour << ":"
<< (minute < 10 ? "0" : "") << minute << ":" << (second < 10 ? "0" : "") << second;
}


// Печать времени в стандартном формате
void Time: :p rintStandard()
{
cout << ((hour == 0 || hour == 12 ) ? 12 : hour % 12) << ":" << (minute < 10 ? "0" : "") << minute << ":"
<< (second < 10 ? "0" : "") << second << (hour < 12 ? " AM" : " PM");

}


3-й

// FIG6_5.CPP
// Драйвер класса Time1
// ЗАМЕЧАНИЕ: Компилируется вместе с TIME1.CPP
#include <iostream.h>
#include "Time1.h"

Time t;
// Драйвер для проверки простого класса Time
main ()
{
Time t; // определение экземпляра объекта t класса Time
cout << "Начальное значение военного времени равно ";
t.printMilitary();
cout << endl
<< "Начальное значение стандартного времени равно ";
t.printStandard();
t.setTime(13, 27, 6);
cout << endl << endl << "Военное время после setTime равно ";
t.printMilitary();
cout << endl << "Стандартное время после setTime равно ";
t . printStandard ( ) ;
t.setTime(99, 99, 99); // попытка установить
// неправильные значения
cout << endl << endl
<< "После попытки неправильной установки:" << endl << "Военное время: ";
t.printMilitary() ;
cout << endl << "Стандартное время: ";
t . printStandard ( ) ;
cout << endl;
return 0; }


Этот пример я взяла из книги Дейтел, но не знаю как откомпилировать и собрать exe модуль в Visual C++, выбирая новый проект как консольное приложение

Добавлено: 24 окт 2005, 09:58
WinMain
Для начала нужно создать новый проект для консольного приложения (Win32 Console Application). Проект должен быть пустым (An Empty Project).
В созданную папку проекта скопируй три своих файла.
Добавь в проект файлы TIME1.CPP и FIG6_5.CPP.
При этом в файлы TIME1.CPP и FIG6_5.CPP необходимо в самом начале вставить строки

Код: Выделить всё

#include "StdAfx.h"

Добавлено: 24 окт 2005, 10:25
svetl
Вы уверены.что проект должен быть An EAn Empty Project. т.к. файл
StdAfx.h формируется в прокте Simple
А если сделать как вы советуете. то идут ошибки , т.к. нет этого файла.
Извините. я новичок и возможно вопросы мои глупые, но спросить не у кого

Добавлено: 24 окт 2005, 13:09
WinMain
Можно создать проект Simple и удалить из него функцию main(). Можно скопировать в него весь исходный текст из файла FIG6_5.CPP, а сам файл FIG6_5.CPP в проекте не использовать. Или скопировать в папку проекта файл stdafx.h из другого консольного проекта.

Добавлено: 31 окт 2005, 12:52
Eugie
Проект должен быть пустым (An Empty Project).
Вы уверены.что проект должен быть An EAn Empty Project
Да, проще сделать на основе Simple application и вставить свои модули.