Потерялась точка входа при переходе от VC++6.0 к VC++2003
// ------------------------- Заголовочный файл: -----------------------
#define WINVER 0x0501
#include "afxwin.h"
class MainWnd : public CFrameWnd // Класс окошка
{
public:
MainWnd(); // Конструктор по умолчанию
};
class App : public CWinApp // Класс приложения
{
public:
App(); //конструктор по умолчанию
virtual BOOL InitInstance();//стандартная инициализация
};
// ----------------------- Файл реализации: ------------------------
MainWnd::MainWnd()
{
Create(NULL,"Программа",WS_OVERLAPPEDWINDOW,rectDefault, NULL,NULL); // Создать окно программы
}
App::App() // конструктор главного класса приложения
{}
BOOL App::InitInstance() // стандартная инициализация
{
m_pMainWnd=new MainWnd(); // создать класс окна
ASSERT(m_pMainWnd); // проверить его правильность
m_pMainWnd->ShowWindow(SW_SHOW);// Показать окно
m_pMainWnd->UpdateWindow();// Обновить окно
return TRUE; // Вернуть что все нормально
};
App theApp; // запуск приложения
И, по-моему, когда-то давно (и не совсем правда) этот код успешно компилился в среде VC++6.0. Пришлось сделать поправку в первой строчке текста на новую версию среды разработки - и файлик компилится без проблем. А вот строиться (to build) - не желает: нету у тебя, говорит, точки входа!
fatal error LNK1561: entry point must be defined.
Как эту программу (VC++2003) уговорить обратить внимание на последнюю строчку с комментарием "запуск приложения"? Ведь точка входа должна быть там, насколько я правильно понял содержимое сайта firststeps.ru?
И ещё: я пробовал методу "Сваяй проект Мастером приложений и найди десять отличий". Проекты этот мастер ваяет весьма объёмистые, но вроде всё как у меня: объявления классов, реализация классов, и единственная строчка объявления переменной - экземпляра приложения. В параметрах проекта, во вкладке линкера, там, где advanced, и написано Entry point (Сам в хелпе нашёл!!), ни у меня, ни у волшебника приложений ничего не написано. Тем не менее, Волшебник эту точку каким-то образом находит. Кто-нибудь подскажет, каким?
Если не помогает - сделай так. Создай новый проект с нуля; при создании укажи using mfc (неважно DLL или статическая библиотека); присоедини к проекту написанные тобой .cpp и .h-файлы. После этого стопудов будет работать.
Но - в любом случае: неужели точка входа действительно в одной из MFC'шных библиотек? Я думал, её в программе указывать надо, и это делается объявлением единственного экземпляра приложения...
Тема не имеет отношения к .NET
И в каком разделе её следовало бы написать? Проблема - то в том, что под VC++ 6.0 всё работает просто по-издевательски замечательно!
Если ты хочешь получить ответ на свой вопрос желательно ещё прикрепить свой проект полностью, а не выдержку из одного файла. Телепаты в отпуске.
Запакован rar'ом с максимальной степенью сжатия