id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 5030,Windows API declaration mismatch,jlcastillo@…,Ion Gaztañaga,"Windows API declaration in Interprocess (win32api.hpp) conflicts with declaration of the same API in other modules. As an example, API function FileTimeToLocalFileTime() is declared in win32api.hpp as: {{{ extern ""C"" __declspec(dllimport) int __stdcall FileTimeToLocalFileTime(const interprocess_filetime *in, interprocess_filetime *out); }}} while in Boost DateTime (filetime_functions.hpp) is declared as: {{{ __declspec(dllimport) int __stdcall FileTimeToLocalFileTime(const FILETIME* lpFileTime, const FILETIME* lpLocalFileTime); }}} In MinGW-gcc4.5.0 it shows the following warning: {{{ c:\msys\1.0\local\include\boost-1.45/boost/interprocess/detail/win32_api.hpp:795:138: warning: declaration of 'int boost::interprocess::winapi::FileTimeToLocalFileTime(const boost::interprocess::winapi::interprocess_filetime*, const boost::interprocess::winapi::interprocess_filetime*)' with C language linkage c:\msys\1.0\local\include\boost-1.45/boost/date_time/filetime_functions.hpp:58:45: warning: conflicts with previous declaration 'int boost::date_time::winapi::FileTimeToLocalFileTime(const boost::date_time::winapi::FILETIME*, boost::date_time::winapi::FILETIME*)' }}} The warning does not prevent a successful build, but may introduce noise in the build report. In order to fix it, I changed the following lines in Interprocess win32api.hpp: {{{ extern ""C"" __declspec(dllimport) int __stdcall FileTimeToLocalFileTime(const interprocess_filetime *in, const interprocess_filetime *out); Changed to (removed ""extern ""C"""" and ""const""): __declspec(dllimport) int __stdcall FileTimeToLocalFileTime(const interprocess_filetime *in, interprocess_filetime *out); }}} {{{ inline bool file_time_to_local_file_time (const interprocess_filetime *in, const interprocess_filetime *out) { return 0 != FileTimeToLocalFileTime(in, out); } Changed to (removed ""const""): inline bool file_time_to_local_file_time (const interprocess_filetime *in, interprocess_filetime *out) { return 0 != FileTimeToLocalFileTime(in, out); } }}} This may be done with all lines throwing this kind of warning. I don't know if this is the best solution, but it is the one that worked for me. ",Bugs,closed,To Be Determined,interprocess,Boost 1.45.0,Cosmetic,invalid,,