PB wrote: ↑Fri Apr 30, 2021 4:04 pm
I implemented the new IFileDialog-based wxDirDialog in 2012 and it certainly is available in wxWidgets 3.1.4.
It is not compiled in if you have outdated mingw.org headers, which lack support for Windows Vista:
https://github.com/wxWidgets/wxWidgets/ ... lg.cpp#L48
I recommend using MinGW distribution which does not lack APIs for an OS released in 2007. AFAIK, project mingw-w64 has the most complete headers and libraries out of the mingw projects there. I recommend MSYS2 distribution, which is maintained and uses current mingw-w64 headers and reasonably updated GCC (currently at 10.2).
Be aware that 64-bit TDM-GCC 9.2 (which AFAIK has mingw-w64 headers) has a serious issue with wxWidgets, so I would not recommend this distribution, see e.g. here:
viewtopic.php?f=1&t=46685
Indeed, it could simply be an issue related to the recognized version of windows. As explained in dirdlg.cpp, wxWidgets will only use the newer dir dialog version for windows versions after vista.
I installed the newest version of mingw-w64 from MSYS2 as you suggested, recompiled wxWidgets with it (I went for the newer version 3.1.5 for the occasion), but the issue persists.
Any other clue or idea to solve this issue ?
I noticed that the manifest files provided in wfWidgets indicates version 6.0.0.0 of windows (so vista). (like in \include\wx\msw\wx.manifest ).
This does seem to be the default file so I don't think the issue would come from that or I wouldn't be the only one encountering it, right ?
Here is the wx.manifest file I got with wxWidgets:
Code: Select all
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="0.64.1.0"
processorArchitecture="x86"
name="Controls"
type="win32"
/>
<description>wxWidgets application</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
EDIT:
Well, now with the updated versions, if I wrote a different default path for the wxDirPickerCtrl, the new dir dialog version was used.
So we can consider the problem solved.
Thank you for your help.