ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> cpp-sig
cpp-sig
[C++-sig] using windows api functions
by Blackmet Blackmet other posts by this author
Nov 7 2009 5:43AM messages near this date
Re: [C++-sig] unfriendly python error message (no line number) | Re: [C++-sig] using windows api functions
Hello, World!)))

I'm try to generate pyd file, which simple should create one window,
and it's necessary to use windiws api functions.
I just take example from msdn:

#include <windows.h> 

// Global variable

HINSTANCE hinst;

// Function prototypes.

//int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int);
BOOL InitApplication(HINSTANCE);
BOOL InitInstance(HINSTANCE, int);
LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);

// Application entry point.

int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG msg;

if (!InitApplication(hinstance))
return FALSE;

if (!InitInstance(hinstance, nCmdShow))
return FALSE;

BOOL fGotMessage;
while ((fGotMessage = GetMessage(&msg, (HWND) NULL, 0, 0)) != 0 &&
fGotMessage != -1)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
UNREFERENCED_PARAMETER(lpCmdLine);
}

BOOL InitApplication(HINSTANCE hinstance)
{
WNDCLASSEX wcx;

// Fill in the window class structure with parameters
// that describe the main window.

wcx.cbSize = sizeof(wcx); // size of structure
wcx.style = CS_HREDRAW |
CS_VREDRAW; // redraw if size changes
wcx.lpfnWndProc = MainWndProc; // points to window procedure
wcx.cbClsExtra = 0; // no extra class memory
wcx.cbWndExtra = 0; // no extra window memory
wcx.hInstance = hinstance; // handle to instance
wcx.hIcon = LoadIcon(NULL,
IDI_APPLICATION); // predefined app. icon
wcx.hCursor = LoadCursor(NULL,
IDC_ARROW); // predefined arrow
wcx.hbrBackground = (HBRUSH)GetStockObject(
WHITE_BRUSH); // white background brush
wcx.lpszMenuName = "MainMenu"; // name of menu resource
wcx.lpszClassName = "MainWClass"; // name of window class
wcx.hIconSm = (HICON)LoadImage(hinstance, // small class icon
MAKEINTRESOURCE(5),
IMAGE_ICON,
GetSystemMetrics(SM_CXSMICON),
GetSystemMetrics(SM_CYSMICON),
LR_DEFAULTCOLOR);

// Register the window class.

return RegisterClassEx(&wcx);
}

BOOL InitInstance(HINSTANCE hinstance, int nCmdShow)
{
HWND hwnd;

// Save the application-instance handle.

hinst = hinstance;

// Create the main window.

hwnd = CreateWindow(
"MainWClass", // name of window class
"Sample", // title-bar string
WS_OVERLAPPEDWINDOW, // top-level window
CW_USEDEFAULT, // default horizontal position
CW_USEDEFAULT, // default vertical position
CW_USEDEFAULT, // default width
CW_USEDEFAULT, // default height
(HWND) NULL, // no owner window
(HMENU) NULL, // use class menu
hinstance, // handle to application instance
(LPVOID) NULL); // no window-creation data

if (!hwnd)
return FALSE;

// Show the window and send a WM_PAINT message to the window
// procedure.

ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
return TRUE;

}

LRESULT CALLBACK MainWndProc( HWND hwnd,
UINT msg,
WPARAM wparam,
LPARAM lparam)
{
switch(msg)
{
case WM_PAINT:
ValidateRgn(hwnd, NULL);
break;
case WM_DESTROY:
{
PostQuitMessage(0);
return(0);
} break;
}
return(DefWindowProc(hwnd, msg, wparam, lparam));
}


and in compile process I get this errors:

c:/boost_1_40_0/boost/python/make_function.hpp: In function
`boost::python::api:
:object boost::python::make_function(F) [with F = int (*)(HINSTANCE__*,
HINSTANCE__*, CHAR*, int)]':
c:/boost_1_40_0/boost/python/def.hpp:82: instantiated from
`boost::python::api
::object boost::python::detail::make_function1(T, ...) [with T = int
(*)(HINSTANCE__*, HINSTANCE__*, CHAR*, int)]'
c:/boost_1_40_0/boost/python/def.hpp:91: instantiated from `void
boost::python
::def(const char*, Fn) [with Fn = int (*)(HINSTANCE__*, HINSTANCE__*, CHAR*,
int)]'
windowmsdn.cpp:141: instantiated from here
c:/boost_1_40_0/boost/python/make_function.hpp:103: error:
invalid conversion from `int (*)(HINSTANCE__*, HINSTANCE__*, CHAR*, int)' to
`int (*)(HINSTANCE__*, HINSTANCE__*, CHAR*, int)'
c:/boost_1_40_0/boost/python/make_function.hpp:103: error:
initializing argument 1 of `boost::mpl::vector5<T0, T1, T2, T3, T4> 
boost::python::detail::get_signature(RT (*)(T0, T1, T2, T3), void*)
[with RT = int, T0 = HINSTANCE__*, T1 = HINSTANCE__*, T2 = CHAR*, T3 = int]'

I will be very grateful for any help.

email: blackmet.darkangel@gmail.com
Thread:
Blackmet Blackmet
Stefan Seefeld
Blackmet Blackmet
Stefan Seefeld
Blackmet Blackmet

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved