erro na compilação com o visual c

17/01/2005

0

seguinte galera...

estou usando o visual c++ para compilar meus sisteminhas de aprendizado em C/C++.

achei um site bom de c... www.cplusplus.com lá tem exemplos e códigos fontes legais...

só que sempre eu compilo o meu sistema e aparece que não teve erro nenhum ai quando eu clico para criar o executável ele me mostra a seguinte mensagem

--------------------Configuration: Main - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Main.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

Main.exe - 2 error(s), 0 warning(s)


alguém saberia me dizer o queeu faço para corrigir esse erro

agradecendo desde já


Piaum3

Piaum3

Responder

Posts

17/01/2005

Massuda

O linker está informando que não conseguiu localizar a função main().

Todo programa em C/C++ deve obrigatoriamente declarar/implementar uma função de nome main(). Por exemplo:
int main(int argc, char *argv[]) {
  // seu código aqui
}
Note que essa função não deve ser declarada como static, pois isso a ocultaria do linker.


Responder

17/01/2005

Piaum3

o que eu estou fazendo é o seguinte

#ifndef _WINDOWS_// if windows.h is not included...
include // include it!
endif
include ´WinTut.h´//include WinTut header file
include ´StdAfx.h´//include WinTut header file

WinTut::WinTut(HINSTANCE hIns)
{
hInst = hIns;

winTutWndCls.cbSize = sizeof(WNDCLASSEX);
winTutWndCls.style = NULL;
winTutWndCls.lpfnWndProc = WndProc;
winTutWndCls.cbClsExtra = 0;
winTutWndCls.cbWndExtra = 0;
winTutWndCls.hInstance = hInst;
winTutWndCls.hIcon = LoadIcon(NULL, IDI_APPLICATION);
winTutWndCls.hCursor = LoadCursor(NULL, IDC_ARROW);
winTutWndCls.hbrBackground = (HBRUSH)(COLOR_WINDOW);
winTutWndCls.lpszMenuName = NULL;
winTutWndCls.lpszClassName = ´WinTutClass´;
winTutWndCls.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

if(!RegisterClassEx(&winTutWndCls))
{
MessageBox(NULL, ´Grrr!\nCould not register window class!´, ´ERROR´, MB_OK | MB_ICONERROR);
}

hWnd = CreateWindowEx(WS_EX_APPWINDOW, ´WinTutClass´, ´WinTut!´, WS_OVERLAPPEDWINDOW, 0, 0, 300, 400, NULL, NULL, hInst, NULL);

if(hWnd == NULL)
{
MessageBox(NULL, ´Could not create Window! :(´, ´ERROR´, MB_OK | MB_ICONERROR);
}
}

void WinTut::show(void)
{
ShowWindow(hWnd, SW_SHOW);
}



int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int)
{

MSG Msg;

WinTut mainWindow(hInst);
mainWindow.show();

while(GetMessage(&Msg, NULL, 0, 0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;

}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{

case WM_CLOSE:

DestroyWindow(hWnd);

break;

case WM_DESTROY:

PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}

eu tenho que declarar alguma coisa para ele reconhecer que a função winmain é a que começa?


Responder

17/01/2005

Massuda

eu tenho que declarar alguma coisa para ele reconhecer que a função winmain é a que começa?
Não... acho que o que está faltando é configurar o VS para ele incluir a biblioteca correta. Faz muito tempo que programei usando C++ no VS por isso não sei como te orientar sobre como resolver esse problema.


Responder

17/01/2005

Massuda

Me lembrei de uma coisa... acho que você deve ter iniciado o projeto no VS como sendo um programa console, quando na realidade deveria ter iniciado o projeto como sendo um programa com GUI.


Responder

20/01/2005

Piaum3

e como eu faço isso para iniciar uma aplicação como GUI... aguardo e agradeço


Responder

20/01/2005

Massuda

e como eu faço isso para iniciar uma aplicação como GUI

Eu não tenho nesse momento o VS instalado com o compilador C/C++ em nenhuma das máquinas que eu uso.

Pelo que me lembro, quando você cria um projeto C++ novo no VS, ele dá opção de aplicativo console, aplicativo Windows e outras opções que não lembro agora. Você devia ter escolhido aplicativo Windows.

Mas qual a versão do VS que você está usando?

Existe um bom fórum sobre ferramentas Microsoft no site do [url=http://www.microsoft.com/brasil/msdn/]MSDN Brasil[/url].


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar