Solved

Visual C++ 5 error message....I can't remember what it means!

Posted on 2001-07-24
5
191 Views
Last Modified: 2010-04-02
I've been trying to compile this source code from a Windows program that does absolutely nothing at this point:

#include <windows.h>

LRESULT CALLBACK wndProc(HWND w,UINT msg,WPARAM wp,LPARAM lp)
{
  switch(msg) {
  case WM_CREATE:
     return 0;
  case WM_RBUTTONDOWN:
  case WM_CLOSE:
     PostQuitMessage(0);
     DestroyWindow(w);
     return 0;
  }
  return DefWindowProc(w,msg,wp,lp);
}

int WINAPI WinMain(
 HINSTANCE hInstance,  // handle to current instance
 HINSTANCE hPrevInstance,  // handle to previous instance
 LPSTR lpCmdLine,      // pointer to command line
 int nCmdShow          // show state of window
)
{
  WNDCLASS cls;
  HWND w;
  MSG msg;

  memset(&cls,0,sizeof(cls));
  cls.lpfnWndProc=wndProc;
  cls.hInstance=GetModuleHandle(0);
  cls.lpszClassName="class";
  cls.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
  RegisterClass(&cls);
  w=CreateWindowEx(0,"class","test",
     WS_POPUP|WS_VISIBLE|WS_SYSMENU|WS_CAPTION,
     5,5,200,200,0,0,cls.hInstance,0);
  while(GetMessage(&msg,0,0,0)) {
     TranslateMessage(&msg);
     DispatchMessage(&msg);
  }
}

The problem is, when I try to build this in Visual C++ 5 I get these two error messages:

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

What's wrong?  What I am doing wrong?  Thanks for any help! :D

0
Comment
Question by:tiffchuff
5 Comments
 
LVL 86

Accepted Solution

by:
jkr earned 100 total points
Comment Utility
The problem is cause by your project settings, which apparently indicate a console app as the target (for which 'main()' would be needed, whereas 'WinMain()' is mandantory for a GUI app).

Go to your project settings (Alt+F7), choose the 'Link' tab, select 'All Configurations' and take a look at the text field at the bottom. There, change '/subsystem:console' to read '/subsystem:windows'.
0
 

Expert Comment

by:westaf
Comment Utility
For your convenience, just create a new empty win32 gui project and add your .cpp file into it and compile!
0
 
LVL 86

Expert Comment

by:jkr
Comment Utility
tiffchuff, are you still with us?
0
 
LVL 11

Expert Comment

by:griessh
Comment Utility
I think you forgot this question. I will ask Community Support to close it unless you finalize it within 7 days. Unless there is objection or further activity,  I will suggest to accept "jkr" comment(s) as an answer.

If you think your question was not answered at all, you can post a request in Community support (please include this link) to refund your points.
The link to the Community Support area is: http://www.experts-exchange.com/jsp/qList.jsp?ta=commspt

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!
======
Werner
0
 
LVL 5

Expert Comment

by:Netminder
Comment Utility
Per recommendation comment force/accepted by

Netminder
Community Support Moderator
Experts Exchange
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

  Included as part of the C++ Standard Template Library (STL) is a collection of generic containers. Each of these containers serves a different purpose and has different pros and cons. It is often difficult to decide which container to use and …
This article shows you how to optimize memory allocations in C++ using placement new. Applicable especially to usecases dealing with creation of large number of objects. A brief on problem: Lets take example problem for simplicity: - I have a G…
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now