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
892 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
ID: 24084892
afaik, WinMain takes two HINSTANCE's as first parameters, and not two HANDLE's.
0
 
LVL 53

Expert Comment

by:Infinity08
ID: 24084903
So :
int PASCAL  WinMain (   HINSTANCE hInstance,

                        HINSTANCE hPrevInst,

                        LPSTR  lpszCmdLine,

                        int    cmdShow

                    )

Open in new window

0
 
LVL 39

Expert Comment

by:itsmeandnobodyelse
ID: 24085023
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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Handle Exceptions during instantiation 28 411
C++ assignment question 7 169
C++ Language error 28 196
Why isn't object file created? 6 42
Templates For Beginners Or How To Encourage The Compiler To Work For You Introduction This tutorial is targeted at the reader who is, perhaps, familiar with the basics of C++ but would prefer a little slower introduction to the more ad…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
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++.

920 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

16 Experts available now in Live!

Get 1:1 Help Now