Solved

I get errors with this approach : WinMain' : function cannot be overloaded , CreateWindowExA' : cannot convert parameter 11 from 'void *' to 'struct HINSTANCE__ *',

Posted on 2009-04-07
3
891 Views
Last Modified: 2012-05-06
1. WinMain' : function cannot be overloaded ,
2. CreateWindowExA' : cannot convert parameter 11 from 'void *' to 'struct HINSTANCE__ *',
3.  wndclass.hInstance         =   hInstance;
error C2440: '=' : cannot convert from 'void *' to 'struct HINSTANCE__ *'
int PASCAL  WinMain (   HANDLE hInstance,

                        HANDLE hPrevInst,

                        LPSTR  lpszCmdLine,

                        int    cmdShow

                    )

{

WNDCLASS wndclass;

MSG      uMsg;
 

    //g_hInst =   hInstance;
 

// Do the usual initialization stuff ...

    if  (   !hPrevInst) 

        {

             wndclass.lpszClassName     =   "InvisibleDummyWnd";

             wndclass.hInstance         =   hInstance;

             wndclass.lpfnWndProc       =   WndProc;

             wndclass.hCursor           =   LoadCursor  (   NULL,   IDC_ARROW);

             wndclass.hIcon             =   LoadIcon    (   NULL,   IDI_APPLICATION);

             wndclass.lpszMenuName      =   NULL;

             wndclass.hbrBackground     =   ( HBRUSH)   COLOR_ACTIVEBORDER;

             wndclass.style             =   0;

             wndclass.cbClsExtra        =   0;

             wndclass.cbWndExtra        =   0;
 

             RegisterClass  (   &wndclass);

        }
 
 

    g_hWnd  =   CreateWindow    (   "InvisibleDummyWnd",

                                    "InvisibleDummyWnd",

                                    0,

                                    CW_USEDEFAULT,

                                    0,

                                    CW_USEDEFAULT,

                                    0,

                                    NULL,

                                    NULL,

                                    hInstance,

                                    NULL

                                );
 
 

    ShowWindow  (   g_hWnd, SW_HIDE);
 

    while   (   GetMessage  (   &uMsg,  0,  0,  0))

            {

                TranslateMessage(   &uMsg);

                DispatchMessage (   &uMsg);

            };
 

return( 0);

}
 

LRESULT CALLBACK WndProc    (   HWND          hWnd,

                                unsigned      uMsg,

                                WPARAM        wParam,

                                LPARAM        lParam

                            )

{
 

//	g_hWnd = hWnd;

  //Process messages  
 

  switch( uMsg)

  {

                                   

    case WM_DESTROY:    PostQuitMessage( 0);

                        break;

	
 
 

    default:            return  (   DefWindowProc   (   hWnd,

                                                        uMsg,

                                                        wParam,

                                                        lParam

                                                    )

                                );

  }
 

   return 0L;

}

Open in new window

0
Comment
Question by:susansyriac
  • 2
3 Comments
 
LVL 53

Accepted Solution

by:
Infinity08 earned 250 total points
Comment Utility
afaik, WinMain takes two HINSTANCE's as first parameters, and not two HANDLE's.
0
 
LVL 53

Expert Comment

by:Infinity08
Comment Utility
So :
int PASCAL  WinMain (   HINSTANCE hInstance,

                        HINSTANCE hPrevInst,

                        LPSTR  lpszCmdLine,

                        int    cmdShow

                    )

Open in new window

0
 
LVL 39

Expert Comment

by:itsmeandnobodyelse
Comment Utility
To add to above comment:

In previous Windows versions API  HANDLE and HINSTANCE both were typedef'd as void* and the type difference could not be detected by the compiler.

The PASCAL specifier is obsolete. Use WINAPI instead.

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

Errors will happen. It is a fact of life for the programmer. How and when errors are detected have a great impact on quality and cost of a product. It is better to detect errors at compile time, when possible and practical. Errors that make their wa…
This article will show you some of the more useful Standard Template Library (STL) algorithms through the use of working examples.  You will learn about how these algorithms fit into the STL architecture, how they work with STL containers, and why t…
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 learn how to clear a vector as well as how to detect empty vectors in C++.

743 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

18 Experts available now in Live!

Get 1:1 Help Now