VisualStudio 2017 v15.8.5 (vc141) Topic is solved

Do you have a question about makefiles, a compiler or IDE you are using and need to know how to set it up for wxWidgets or why it doesn't compile but other IDE's do ? Post your questions here.
Post Reply
Nunki
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 235
Joined: Fri Sep 14, 2012 8:26 am
Location: Kontich, Belgium
Contact:

VisualStudio 2017 v15.8.5 (vc141)

Post by Nunki »

Hi Guys,

I have the same error occurring when compiling a dll on VS2017 regarding wxStrcol not being defined. VS2017 is the 64bit version but I'm compiling my dll in 32bit mode. So I used the precompiled wxWidgets v3.0.4 32 bits for vs2017 (the one with 141 in the filename). Any clues on why and how to solve this ? As you can see in the screenprint there are other issues that may or may not disappear when solving this one.
wxStrcoll.png
with regards,
Nunki
User avatar
doublemax
Moderator
Moderator
Posts: 19158
Joined: Fri Apr 21, 2006 8:03 pm
Location: $FCE2

Re: VisualStudio 2017 v15.8.5 (vc141)

Post by doublemax »

It's possible that VS2017 is just too new for wx3.0.4. Can you try with 3.1.1?

What's the very first error message you get.
Use the source, Luke!
PB
Part Of The Furniture
Part Of The Furniture
Posts: 4204
Joined: Sun Jan 03, 2010 5:45 pm

Re: VisualStudio 2017 v15.8.5 (vc141)

Post by PB »

doublemax wrote:It's possible that VS2017 is just too new for wx3.0.4.
As I wrote in a recent similar thread, I could build wxWidgets 3.04 with MSVC 2017.

However, I used MSVC v15.8.4 and the OP is also using the prebuilt libraries buit with MSVC older than 15.8.5 but I believe neither should make a difference.

BTW, I believe that there is no 64-bit version of MSVS, despite people asking for it for years....

Edit: FWIW, I could build wxWidgets 3.04 and its xrc sample without any issues (Debug Static).
Nunki
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 235
Joined: Fri Sep 14, 2012 8:26 am
Location: Kontich, Belgium
Contact:

Re: VisualStudio 2017 v15.8.5 (vc141)

Post by Nunki »

I do think VS2017 to be a 64bit compiler - who can also build 32bit applications. When youo open the project properties you can choose the platform (see screenshot) and x64 would be a build for a 64bit application I think.
64bit.png
64bit.png (36.52 KiB) Viewed 5855 times
I could of course and certainly will try 3.1.1 and see what happens, though this version is not yet considered a stable release, thus not for production environments.

However, the source where this error refers to is this:

Code: Select all

// GCC 3.4 and other compilers have a bug that causes it to fail compilation if
// the template's implementation uses overloaded function declared later (see
// the wxStrcoll() call in wxStrcoll_String<T>()), so we have to
// forward-declare the template and implement it below WX_STRCMP_FUNC. OTOH,
// this fails to compile with VC6, so don't do it for VC. It also causes
// problems with GCC visibility in newer GCC versions.
#if !(defined(__VISUALC__) || (wxCHECK_GCC_VERSION(3,5) && !wxCHECK_GCC_VERSION(4,7))) || defined(__clang__)
    #define wxNEEDS_DECL_BEFORE_TEMPLATE
#endif

#ifdef wxNEEDS_DECL_BEFORE_TEMPLATE
template<typename T>
inline int wxStrcoll_String(const wxString& s1, const T& s2);
WX_STRCMP_FUNC(wxStrcoll, wxCRT_StrcollA, wxCRT_StrcollW, wxStrcoll_String)
#endif // wxNEEDS_DECL_BEFORE_TEMPLATE

template<typename T>
inline int wxStrcoll_String(const wxString& s1, const T& s2)
{
#if wxUSE_UNICODE
    // NB: strcoll() doesn't work correctly on UTF-8 strings, so we have to use
    //     wc_str() even if wxUSE_UNICODE_UTF8; the (const wchar_t*) cast is
    //     there just as optimization to avoid going through
    //     wxStrcoll<wxScopedWCharBuffer>:
    return wxStrcoll((const wchar_t*)s1.wc_str(), s2);
#else
    return wxStrcoll((const char*)s1.mb_str(), s2);
#endif
}
And I must say VS2017 is much more strict on syntax. Whereas VS2010 allowed for a class member be defined in the header file with the prefix like

Code: Select all

class myClass: 
{
 myClass::myClass(void);
 myClass::~myClass(void);
 void myClass::Insert(void);
 };
it now must be more like gcc already required a long time ago

Code: Select all

class myClass: 
{
 myClass(void);
 ~myClass(void);
 void Insert(void);
 };
Now since this piece of code refers to GCC in the comment about a forward declare, I would think this to be the possible source of the problem. Maybe for VS2017 15.8.5 the constant wxNEEDS_DECL_BEFORE_TEMPLATE needs to be declared.

with regards,
Nunki
PB
Part Of The Furniture
Part Of The Furniture
Posts: 4204
Joined: Sun Jan 03, 2010 5:45 pm

Re: VisualStudio 2017 v15.8.5 (vc141)

Post by PB »

Nunki wrote:I do think VS2017 to be a 64bit compiler - who can also build 32bit applications.
While MSVC can indeed produce 64-bit code, it itself is still a 32-bit program, as you can see in the task manager (notice "*32" next to the process name in the process list on 64-bit Windows). 64-bit MSVS is not even in plans for the next MSVS version, see e.g. the answers of MS devs in the discussion here: https://blogs.msdn.microsoft.com/visual ... al-studio/ This of course has no relevance for the topic, just saying...


As I wrote in the edit of my previous post in this thread (but failed to mention the version), I could build wxWidgets and xrc sample with MSVC Express 15.8.5 (static debug 32-bit as well as DLL debug 64-bit). However I still did not try the prebuilt libraries, though the issue the op has is with an inline function so...
Nunki
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 235
Joined: Fri Sep 14, 2012 8:26 am
Location: Kontich, Belgium
Contact:

Re: VisualStudio 2017 v15.8.5 (vc141)

Post by Nunki »

Hi,

When I add the exception of _MSC_VER_ being 1915 which is the VS2017 141 version 15.8.5, the errors regarding wxStrcol disappear. However, there are lots of other - likewise - errors. So I'm wondering if this needs to be logged with a bugreport or what.

Code: Select all

// GCC 3.4 and other compilers have a bug that causes it to fail compilation if
// the template's implementation uses overloaded function declared later (see
// the wxStrcoll() call in wxStrcoll_String<T>()), so we have to
// forward-declare the template and implement it below WX_STRCMP_FUNC. OTOH,
// this fails to compile with VC6, so don't do it for VC. It also causes
// problems with GCC visibility in newer GCC versions.
#if (!(defined(__VISUALC__) || (wxCHECK_GCC_VERSION(3,5) && !wxCHECK_GCC_VERSION(4,7))) || defined(__clang__) || (_MSC_VER == 1915))
    #define wxNEEDS_DECL_BEFORE_TEMPLATE
#endif

#ifdef wxNEEDS_DECL_BEFORE_TEMPLATE
template<typename T>
inline int wxStrcoll_String(const wxString& s1, const T& s2);
WX_STRCMP_FUNC(wxStrcoll, wxCRT_StrcollA, wxCRT_StrcollW, wxStrcoll_String)
#endif // wxNEEDS_DECL_BEFORE_TEMPLATE
The list of errors is

Code: Select all

Severity	Code	Description	Project	File	Line	Suppression State
Error	C2079	'_DRIVER_INFO_8A::ftDriverDate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	775	
Error	C2011	'_FILETIME': 'struct' type redefinition (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\shared\minwindef.h	271	
Error	C2011	'_SYSTEMTIME': 'struct' type redefinition (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\minwinbase.h	90	
Error	C2079	'_WIN32_FIND_DATAA::ftCreationTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\minwinbase.h	104	
Error	C2079	'_WIN32_FIND_DATAA::ftLastAccessTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\minwinbase.h	105	
Error	C2079	'_WIN32_FIND_DATAA::ftLastWriteTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\minwinbase.h	106	
Error	C2079	'_WIN32_FIND_DATAW::ftCreationTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\minwinbase.h	121	
Error	C2079	'_WIN32_FIND_DATAW::ftLastAccessTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\minwinbase.h	122	
Error	C2079	'_WIN32_FIND_DATAW::ftLastWriteTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\minwinbase.h	123	
Error	C2061	syntax error: identifier 'LPFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\fileapi.h	173	
Error	C2079	'_WIN32_FILE_ATTRIBUTE_DATA::ftCreationTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\fileapi.h	471	
Error	C2079	'_WIN32_FILE_ATTRIBUTE_DATA::ftLastAccessTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\fileapi.h	472	
Error	C2079	'_WIN32_FILE_ATTRIBUTE_DATA::ftLastWriteTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\fileapi.h	473	
Error	C2079	'_BY_HANDLE_FILE_INFORMATION::ftCreationTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\fileapi.h	530	
Error	C2079	'_BY_HANDLE_FILE_INFORMATION::ftLastAccessTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\fileapi.h	531	
Error	C2079	'_BY_HANDLE_FILE_INFORMATION::ftLastWriteTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\fileapi.h	532	
Error	C2061	syntax error: identifier 'LPFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\fileapi.h	617	
Error	C2061	syntax error: identifier 'LPFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\fileapi.h	840	
Error	C2061	syntax error: identifier 'LPFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\processthreadsapi.h	108	
Error	C2061	syntax error: identifier 'LPFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\processthreadsapi.h	822	
Error	C2065	'PFILETIME': undeclared identifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\processthreadsapi.h	970	
Error	C2146	syntax error: missing ')' before identifier 'lpIdleTime' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\processthreadsapi.h	970	
Error	C2065	'LPSYSTEMTIME': undeclared identifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\sysinfoapi.h	104	
Error	C2146	syntax error: missing ')' before identifier 'lpSystemTime' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\sysinfoapi.h	105	
Error	C2065	'LPFILETIME': undeclared identifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\sysinfoapi.h	112	
Error	C2146	syntax error: missing ')' before identifier 'lpSystemTimeAsFileTime' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\sysinfoapi.h	113	
Error	C2065	'LPSYSTEMTIME': undeclared identifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\sysinfoapi.h	120	
Error	C2146	syntax error: missing ')' before identifier 'lpSystemTime' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\sysinfoapi.h	121	
Error	C2061	syntax error: identifier 'PFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\threadpoolapiset.h	250	
Error	C2061	syntax error: identifier 'PFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\threadpoolapiset.h	298	
Error	C2061	syntax error: identifier 'PFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\threadpoolapiset.h	369	
Error	C2061	syntax error: identifier 'PFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\threadpoolapiset.h	381	
Error	C2061	syntax error: identifier 'LPFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winbase.h	2367	
Error	C2079	'_TIME_ZONE_INFORMATION::StandardDate' uses undefined struct '_SYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\timezoneapi.h	38	
Error	C2079	'_TIME_ZONE_INFORMATION::DaylightDate' uses undefined struct '_SYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\timezoneapi.h	41	
Error	C2079	'_TIME_DYNAMIC_ZONE_INFORMATION::StandardDate' uses undefined struct '_SYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\timezoneapi.h	48	
Error	C2079	'_TIME_DYNAMIC_ZONE_INFORMATION::DaylightDate' uses undefined struct '_SYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\timezoneapi.h	51	
Error	C2061	syntax error: identifier 'LPSYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\timezoneapi.h	64	
Error	C2061	syntax error: identifier 'LPSYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\timezoneapi.h	75	
Error	C2061	syntax error: identifier 'LPSYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\timezoneapi.h	85	
Error	C2061	syntax error: identifier 'LPFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\timezoneapi.h	95	
Error	C2061	syntax error: identifier 'PFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winreg.h	555	
Error	C2061	syntax error: identifier 'PFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winreg.h	569	
Error	C2061	syntax error: identifier 'PFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winreg.h	762	
Error	C2061	syntax error: identifier 'PFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winreg.h	780	
Error	C2079	'tagRPC_EXTENDED_ERROR_INFO::SystemTime' uses undefined struct '_SYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\shared\rpcasync.h	290	
Error	C2079	'tagRPC_EXTENDED_ERROR_INFO::FileTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\shared\rpcasync.h	291	
Error	C2079	'_PERF_DATA_BLOCK::SystemTime' uses undefined struct '_SYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winperf.h	84	
Error	C2079	'_CERT_INFO::NotBefore' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	2325	
Error	C2079	'_CERT_INFO::NotAfter' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	2326	
Error	C2079	'_CRL_ENTRY::RevocationDate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	2365	
Error	C2079	'_CRL_INFO::ThisUpdate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	2380	
Error	C2079	'_CRL_INFO::NextUpdate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	2381	
Error	C2079	'_CTL_INFO::ThisUpdate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	2491	
Error	C2079	'_CTL_INFO::NextUpdate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	2492	
Error	C2079	'_CERT_PRIVATE_KEY_VALIDITY::NotBefore' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	3892	
Error	C2079	'_CERT_PRIVATE_KEY_VALIDITY::NotAfter' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	3893	
Error	C2079	'_CMC_PEND_INFO::PendTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	5281	
Error	C2079	'_OCSP_BASIC_REVOKED_INFO::RevocationDate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	5670	
Error	C2079	'_OCSP_BASIC_RESPONSE_ENTRY::ThisUpdate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	5688	
Error	C2079	'_OCSP_BASIC_RESPONSE_ENTRY::NextUpdate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	5689	
Error	C2079	'_OCSP_BASIC_RESPONSE_INFO::ProducedAt' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	5709	
Error	C2079	'_CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO::Date' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	6921	
Error	C2079	'_CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO::Date' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	6997	
Error	C2079	'_CMSG_RECIPIENT_ENCRYPTED_KEY_INFO::Date' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	7789	
Error	C2079	'_CMSG_MAIL_LIST_RECIPIENT_INFO::Date' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	7820	
Error	C3646	'pftTimeToUse': unknown override specifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	13827	
Error	C4430	missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	13827	
Error	C2065	'LPFILETIME': undeclared identifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	14575	
Error	C2146	syntax error: missing ')' before identifier 'pTimeToVerify' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	14575	
Error	C2065	'LPFILETIME': undeclared identifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	14597	
Error	C2146	syntax error: missing ')' before identifier 'pTimeToVerify' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	14597	
Error	C2079	'_CRYPTNET_URL_CACHE_PRE_FETCH_INFO::ThisUpdateTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17354	
Error	C2079	'_CRYPTNET_URL_CACHE_PRE_FETCH_INFO::NextUpdateTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17355	
Error	C2079	'_CRYPTNET_URL_CACHE_PRE_FETCH_INFO::PublishTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17356	
Error	C2079	'_CRYPTNET_URL_CACHE_FLUSH_INFO::ExpireTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17382	
Error	C2079	'_CRYPTNET_URL_CACHE_RESPONSE_INFO::LastModifiedTime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17398	
Error	C3646	'pftCacheResync': unknown override specifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17452	
Error	C4430	missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17452	
Error	C3646	'pftCacheResync': unknown override specifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17818	
Error	C4430	missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17818	
Error	C3646	'pLastSyncTime': unknown override specifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17821	
Error	C4430	missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17821	
Error	C3646	'pMaxAgeTime': unknown override specifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17826	
Error	C4430	missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17826	
Error	C2061	syntax error: identifier 'LPFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17847	
Error	C2061	syntax error: identifier 'PSYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	17992	
Error	C2061	syntax error: identifier 'LPFILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	19719	
Error	C3646	'pftCurrentTime': unknown override specifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	19761	
Error	C4430	missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	19761	
Error	C3646	'pftCacheResync': unknown override specifier (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	19762	
Error	C4430	missing type specifier - int assumed. Note: C++ does not support default-int (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\wincrypt.h	19762	
Error	C2079	'_JOB_INFO_1A::Submitted' uses undefined struct '_SYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	345	
Error	C2079	'_JOB_INFO_1W::Submitted' uses undefined struct '_SYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	360	
Error	C2079	'_JOB_INFO_2A::Submitted' uses undefined struct '_SYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	393	
Error	C2079	'_JOB_INFO_2W::Submitted' uses undefined struct '_SYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	418	
Error	C2079	'_JOB_INFO_4A::Submitted' uses undefined struct '_SYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	459	
Error	C2079	'_JOB_INFO_4W::Submitted' uses undefined struct '_SYSTEMTIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	485	
Error	C2079	'_DRIVER_INFO_6A::ftDriverDate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	712	
Error	C2079	'_DRIVER_INFO_6W::ftDriverDate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	731	
Error	C2079	'_DRIVER_INFO_8A::ftMinInboxDriverVerDate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	787	
Error	C2079	'_DRIVER_INFO_8W::ftDriverDate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	802	
Error	C2079	'_DRIVER_INFO_8W::ftMinInboxDriverVerDate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	814	
Error	C2079	'_CORE_PRINTER_DRIVERA::ftDriverDate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	3558	
Error	C2079	'_CORE_PRINTER_DRIVERW::ftDriverDate' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\winspool.h	3565	
Error	C2079	'tagSTATSTG::mtime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\objidlbase.h	2218	
Error	C2079	'tagSTATSTG::ctime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\objidlbase.h	2219	
Error	C2079	'tagSTATSTG::atime' uses undefined struct '_FILETIME' (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\objidlbase.h	2220	
Error	C1003	error count exceeds 100; stopping compilation (compiling source file ..\Src\XmlTools.cpp)	BTK	c:\program files (x86)\windows kits\10\include\10.0.17134.0\um\objidlbase.h	2220	
Error	C4703	potentially uninitialized local pointer variable 'hCtrl' used	BTK	k:\dbs1.9\btk\src\wndtools.cpp	65	
Error	C4703	potentially uninitialized local pointer variable 'hCtrl' used	BTK	k:\dbs1.9\btk\src\wndtools.cpp	120	

regards,
Nunki
PB
Part Of The Furniture
Part Of The Furniture
Posts: 4204
Joined: Sun Jan 03, 2010 5:45 pm

Re: VisualStudio 2017 v15.8.5 (vc141)

Post by PB »

Can you reproduce the issue with any of the bundled samples (using vc9 converted projects) or is it just with your own project file?

If it were wxWidgets issue, how come it works for me? Did it really stopped working just because you upgraded to 15.8.5? Does the issue manifest when you use wxWidgets libraries you built by yourself?
Nunki
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 235
Joined: Fri Sep 14, 2012 8:26 am
Location: Kontich, Belgium
Contact:

Re: VisualStudio 2017 v15.8.5 (vc141)

Post by Nunki »

Hi PB,

I haven't tried any project apart from the one I was trying now.
It could be IMHO that indeed MS augmented the level of complying to the standards. Since the comments in the wxWidgets code clearly stated, the developers themselves have already been confronted with the fact that gcc is more strict than VS. So yes it could be just that difference between my version and yours. Or it could also be a compiler option that I do not know yet, that treats these items as errors. But that should mean also that in your version/setup these errors were treated as warnings, at least.

Up till now I only used the binary prebuilt versions of wxWidgets.

with regards,
Nunki
PB
Part Of The Furniture
Part Of The Furniture
Posts: 4204
Joined: Sun Jan 03, 2010 5:45 pm

Re: VisualStudio 2017 v15.8.5 (vc141)

Post by PB »

Nunki wrote:So yes it could be just that difference between my version and yours. Or it could also be a compiler option that I do not know yet, that treats these items as errors. But that should mean also that in your version/setup these errors were treated as warnings, at least.
I tried with wxWidgets 3.0.4 with unmodified setup.h and the same version of MSVC you have - 15.8.5.

What I meant to say was that you should try to reproduce the error with wxWidgets sample before you submit this as a bug, to make sure the issue is not within your project.

The errors about standard Windows types such _SYSTEMTIME or _FILETIME being undefined look odd, as if there were a windows header files issue.
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7477
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: VisualStudio 2017 v15.8.5 (vc141)

Post by ONEEYEMAN »

Hi,
I could of course and certainly will try 3.1.1 and see what happens, though this version is not yet considered a stable release, thus not for production environments.
Why do you say this?
The only difference between stable and development releases are API/ABI compatibility.

It means that between 3.0.0 and 3.0.4 (all stable releases) there is a guarantee that both those aforementioned compatibilities won't be broken.
And between 3.1.0 and 3.1.1, the API compatibility can be broken. And it will make a transition to 3.2.0 (next stable release) easier, because the API will be stable by that time and you will eliminate all those hassles with the upgrade.

But both 3.0.4 and 3.1.1 can be used for production in all 3 major platforms. Remember you can create a dependency in *nix builds for any version you want when you start packaging the software.

Thank you.
Nunki
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 235
Joined: Fri Sep 14, 2012 8:26 am
Location: Kontich, Belgium
Contact:

Re: VisualStudio 2017 v15.8.5 (vc141)

Post by Nunki »

Hi Guys,

Problem solved. Turned out wxWidgets was not the base of this problem. VS2017 for some reason resulted these error because of the sequence of the include files. Once I rearranged the sequence it compiled without any errors or warnings.

Thanks to all who stepped in to help me.

regards,
Nunki
ryanlee3948
In need of some credit
In need of some credit
Posts: 1
Joined: Tue Mar 12, 2019 6:38 am

Re: VisualStudio 2017 v15.8.5 (vc141)

Post by ryanlee3948 »

Nunki wrote: Sat Oct 06, 2018 12:37 pm Problem solved. Turned out wxWidgets was not the base of this problem. VS2017 for some reason resulted these error because of the sequence of the include files. Once I rearranged the sequence it compiled without any errors or warnings.
Can you specify which include files you rearranged? I seem to have the same problem with an even newer version of Visual Studio (15.9.8). Thanks.
Nunki
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 235
Joined: Fri Sep 14, 2012 8:26 am
Location: Kontich, Belgium
Contact:

Re: VisualStudio 2017 v15.8.5 (vc141)

Post by Nunki »

@ryanlee

Apart from wxWidgets I also use the Chilkat library. Turned out one of their headers had to be one of the first included to fix this problem. Later on the guy at Chilkat argued that adding the windows.h header would also have done the trick.

Hope this helps you in some way,
regards,
Nunki
Post Reply