Boost logo

Boost Users :

Subject: Re: [Boost-users] Compile errors inside boost::asio code I can't affect.
From: Zachary Turner (divisortheory_at_[hidden])
Date: 2009-06-26 18:29:59


On Fri, Jun 26, 2009 at 3:14 PM, <Michael.Broida_at_[hidden]> wrote:
>>>----------------
> error C2664: 'QueueUserAPC' : cannot convert parameter 1 from 'void (__cdecl
> *)(ULONG)' to 'PAPCFUNC'
> D:\dev\3rdParty_x64\include\boost\asio\detail\win_thread.hpp    151

It appears to me that you can only get this error if you have defined
WINVER to be something less than 0x0500, which means the software you
are building is attempting to support a version of windows PRIOR to
Windows 2000. Is this your intention? Try defining WINVER to be
0x0500 (if you want to run on Win2k and higher) and 0x0501 (if you
want to run on WinXP+)

>
>>>----------------
> error C2664: 'GetQueuedCompletionStatus' : cannot convert parameter 3 from
> 'DWORD *' to 'PULONG_PTR'
> D:\dev\3rdParty_x64\include\boost\asio\detail\win_iocp_io_service.hpp   142
>
>>>----------------
> error C2664: 'GetQueuedCompletionStatus' : cannot convert parameter 3 from
> 'DWORD *' to 'PULONG_PTR'
> D:\dev\3rdParty_x64\include\boost\asio\detail\win_iocp_io_service.hpp   430

This could be related to the first issue. DWORD* and PULONG_PTR are
supposed to be exactly the same type when compiling for x64 on recent
operating systems. So it makes me think that the compiler thinks
you're on a really old operating system. I would try this

#define WINVER 0x0501
#define _WIN32_WINNT 0x0501

either in your stdafx.h if you use precompiled header, or as a command
line option if you don't.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net