|
25.11.2007, 19:08
|
#1
|
AnyKey`щик
Регистрация: 28.10.2007
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Ошибка Link.exe-программитрование под Win32
Приветствую всех! Вот написал свою первую прогу на С++.Даже не прогу.ТИак.Тренировка навыков:
#include <windows.h>
LRESULT CALLBACK mesa(HWND,UINT,WPARAM,LPARAM);
char *wwinname="I`s works!";
int WINAPI WinMain(HINSTANCE hinst,HINSTANCE HPREV,LPSTR lpcl,int CmdShow){
HWND hWnd;
MSG msg;
WNDCLASS wc;
wc.hInstance=hinst;
wc.lpszClassName=wwinname;
wc.lpfnWndProc=mesa;
wc.style=0;
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.lpszMenuName=NULL;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
if(!RegisterClass(&wc)) return 0;
hWnd=CreateWindow(wwinname,"My First Window!",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,HWND_DESKTOP,NULL,hinst,NULL);
ShowWindow(hWnd,CmdShow);
UpdateWindow(hWnd);
while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}return msg.wParam;
}
LRESULT CALLBACK mesa(HWND hWnd,UINT iMsg,WPARAM wParam,LPARAM lParam){
switch(iMsg){
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,iMsg,wParam,lParam);
}
return 0;
}
Компиляция и билт проходит нормально,а вот когда запустить получаю пинок такого содержание :
--------------------Configuration: Cpp1 - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Cpp1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Cpp1.exe - 2 error(s), 0 warning(s)
|
Что от меня хочет компилятор ?(компилятор-VC++ 6.0)
|
(Offline)
|
|
25.11.2007, 20:31
|
#2
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: Ошибка Link.exe-программитрование под Win32
Ты виндоус приложение создал в мастере студии?
|
(Offline)
|
|
25.11.2007, 20:53
|
#3
|
|
Re: Ошибка Link.exe-программитрование под Win32
DekaR
в настройках проекта указана под консольная система
а в коде есть точка входа для оконного приложения
|
|
|
25.11.2007, 20:54
|
#4
|
Знающий
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение (для 2 участников)
|
Re: Ошибка Link.exe-программитрование под Win32
Ну на первую прогу это не похоже, Hello, World! не выводит, но все таки:
эта ошибка может возникать по следующим причинам:
невозможно производить запись (чтение) на диск (с диска)
сбой компилятора
не подключены необходимые библиотеки
если первые две причины, то перезагрузи винду и перезапусти Viusual Studio
если третья (это самое вероятное), то в зависимости от версии Visual Studio, библиотеки подключаюся по разному:
Visual Studio 6.0: заходить в меню Project->Settings->Link.
В строке "Objects\Liberalys moduls:" в конце через пробел добавляешь:opengl32.lib glaux.lib. После этого нажимаешь "OK".
Visual Studio 2005: заходишь в меню Project->"Название проекта"Properytys. В иерархическом списке слева выбираешь Configuration Properitys->Linker->Comand Line. В поле внизу окна вводишь: glu32.lib
opengl32.lib.
Нажимаешь "OK"
|
(Offline)
|
|
25.11.2007, 21:14
|
#5
|
AnyKey`щик
Регистрация: 28.10.2007
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Ошибка Link.exe-программитрование под Win32
Alex_90, до меня уже было там написано :
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
|
Дописал.Не помогло.
alcoSHoLiK,мне и нужно оконное чтобы создалось
в настройках проекта указана под консольная система
|
.А где поменять это ?
alcoSHoLiK,нет.Я создал исходник.Нажал билт он мне предожил создать воркспайс и все такое.нажал "да".Вот и все.
Запись на диск разрешена
|
(Offline)
|
|
25.11.2007, 21:31
|
#6
|
Знающий
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение (для 2 участников)
|
Re: Ошибка Link.exe-программитрование под Win32
Ну, правильно!
А те, что я написал, ты не добавил?
|
(Offline)
|
|
25.11.2007, 21:37
|
#7
|
AnyKey`щик
Регистрация: 28.10.2007
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Ошибка Link.exe-программитрование под Win32
Alex_90<добавил.Стало так :
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib opengl32.lib glaux.lib
|
,по прежмему.С компилом все нормально а вот билт и запуск не работает.
|
(Offline)
|
|
25.11.2007, 21:38
|
#8
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: Ошибка Link.exe-программитрование под Win32
Зайди в настройки проекта. Это или меню Tools, или Project.
Найди в дереве свойств Linker. В подпункте найди System. Надо там поставить для Subsystem значение Windows.
А в пункте C\C++ в подпункте Preprocessor сотри _CONSOLE и вместо него напиши _WINDOWS.
А вообще, создай проект через визард, добавь в него исходник и не парь себе моск. В студии разработку всегда надо начинать с создания проекта.
|
(Offline)
|
|
25.11.2007, 21:56
|
#9
|
AnyKey`щик
Регистрация: 28.10.2007
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Ошибка Link.exe-программитрование под Win32
alcoSHoLiK,нашел в свойствах проекта закладку LInk, но ничего подобно там нет.Переписал на вкладке С/С++ переписал по твоему совету.Не работает .Создал проекта.Как пустой.он мне создал файлы заголовков и т.п. Перешел в пункт файлы,добавил на воркспайс свой исходник.И ...ОНО запустилось!!!!Всем спасибо.Но всеравно конечно интересно почему оно всетаки не работает если создавать без мастера ?
|
(Offline)
|
|
25.11.2007, 22:37
|
#10
|
Знающий
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение (для 2 участников)
|
Re: Ошибка Link.exe-программитрование под Win32
У тебя какая версия Visual Studio?
|
(Offline)
|
|
25.11.2007, 22:58
|
#11
|
AnyKey`щик
Регистрация: 28.10.2007
Сообщений: 8
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Ошибка Link.exe-программитрование под Win32
6.0
|
(Offline)
|
|
25.11.2007, 23:02
|
#12
|
Знающий
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение (для 2 участников)
|
Re: Ошибка Link.exe-программитрование под Win32
Ну, ну: я твой код откомпилил - работает, окно выводит с надписью в заголовке, что типо, это твое первое окно. И еще восклицательный знак добавляет в конце!
|
(Offline)
|
|
25.11.2007, 23:10
|
#13
|
Знающий
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение (для 2 участников)
|
Re: Ошибка Link.exe-программитрование под Win32
Поробуй пересоздай проект по следующему алгоритму:
File->New->Projects->Win32Application(в поле "Project name" вводишь имя проекта, а в поле "Lovation" - путь, где его создать)->Finish->OK->меню Project->Add to Project->New->C++ Sourse File (в поле "File name" вводишь название проекта->Ok
Далее всавляешь в проект код, а потом добавляешь библиотеки, как я писал раньше и компилишь.
|
(Offline)
|
|
25.11.2007, 23:41
|
#14
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Re: Ошибка Link.exe-программитрование под Win32
Я не помню, какие настройки в 6-й студии. Просто при создании проекта укажи, чтобы пустой создавало. Тогда никаких левых файлов не будет.
|
(Offline)
|
|
26.11.2007, 00:03
|
#15
|
Знающий
Регистрация: 05.02.2007
Сообщений: 201
Написано одно полезное сообщение (для 2 участников)
|
Re: Ошибка Link.exe-программитрование под Win32
По умолчанию он и создается.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:12.
|