Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Opening a fbp file from am earlier version #734

Open
tester0077 opened this issue Apr 12, 2022 · 8 comments
Open

Opening a fbp file from am earlier version #734

tester0077 opened this issue Apr 12, 2022 · 8 comments

Comments

@tester0077
Copy link

tester0077 commented Apr 12, 2022

I am running into a problem which looks like it is related to the 'theme' - see my latest comment for the closed issue #374

Running Windows 10, 64-bit, latest Github version built from source with MSVC 2019 version 1.10.1-200-g253ddd4d
Workflow:
Run debug version in MSVC debugger
open an existing file - built under version 3.10.1-0-g8feb16b3
Click on top frame of project and the first issue that pops up relates to a timer
ExistingProjectMainframe-issue-Timer
Clicking on 'No' pops up the second timer error - not really a surprise
ExistingProjectMainframe-issue-Timer-2
Click on 'Cancel' to try and proceed give the third popup
regarding a map iterator issue
ExistingProject-issueMapIterator

Clicking on 'Ignore' gives
Unhandled exception at 0x79DAFC66 (ucrtbased.dll) in wxFormBuilder.exe: An invalid parameter was passed to a function that considers invalid parameters fatal.
This error is thrown from line 548/9 in visualeditor.cpp

// Attach the toolbar (if any) to the frame
                if (child->GetClassName() == wxT("wxToolBar")) {
                    ObjectBaseMap::iterator it = m_baseobjects.find(child.get());

@sodevel
Copy link
Member

sodevel commented Apr 13, 2022

No its not. As can be seen in #731, for some unknown reason you are linking against the static variant of wxWidgets (the CMake files do request the shared variant, this must be some sort of last-resort fallback), this causes these strange crashes and error messages. You MUST link against the DLL variant of wxWidgets (and the DLL variant of the compiler runtime, but this is enabled by default).

It seems you are using a prebuild wxWidgets release, i've never used these, make sure you have the DLLs and import libraries available, they should reside in a directory ending with dll instead of lib.

@tester0077
Copy link
Author

Not sure why this issue was closed, It still is not resolved.
I followed your instructions and downloaded the full Github code directly.
Created my MSVC sln file according to instructions.
Although you were correct in your assessment of the static variant of wxAny being used, that was because the CMake process created the sln file with those paths and file names.
Correcting this manually in the created sln file got me back to exactly the same place as I had been with my manually constructed sln file - both project are still on my system in parallel so that I can compare. Both compile cleanly and fail in the same way and place. By now I have spent more time analyzing the results - see below.

The exception is thrown initially because the app cannot find its plugins, though, the use of THROW_WXFBEX seems to confuse the issue, because eventually, at database.cpp # 1179,
ex.what() = L"boost::dll::shared_library::load() failed: %1 is not a valid Win32 application."
and the log functions choke on the %1 format specifier.
By rights, the 'what' string would be expected to reflect the name (and path, for more complete info) of the plugin which was not found, hence, evidently (IMO) the basic problem is an issue with the call to load the plugin at database.cpp#1171 - 77
which does not give the called function enough, or the wrong information about where to look for the plugin dlls etc.

 pluginLibrary->second.sharedLibrary.load(
          libfile.ToStdString(),
          boost::dll::load_mode::default_mode |           // Use platform default parameters
            boost::dll::load_mode::append_decorations |   // Only the library base name is supplied, it needs to be
                                                          // decorated for the platform
            boost::dll::load_mode::search_system_folders  // This enables usage of RPATH
        );

I am not familiar enough with boost (at this time) to be able to diagnose the issue with that call nor what sort of setup might be needed as hinted at by the comment "This enables usage of RPATH"
That may well be something setup when the app is installed, but not when t is run under MSVC in debug mode.

@sodevel
Copy link
Member

sodevel commented Apr 14, 2022

I am not aware that i closed any issue recently, it was you who closed your created issue or posted in an already closed and unrelated issue.

I am very confident all your problems are in two categories:

  1. Not finding the required libraries
  2. Not finding the required ressources

You are using some very weird and not productive attempts in solving these. There is no problem with the plugin loading code anymore. There are 6 different variants build and tested on the GitHub CI plus i build one, sometimes two, other variants on my development machine. All these variants work without problems.

The first step is getting the libraries found. Editing the generated project files is not a solution, these can get regenerated automatically. The CMake wxWidgets Find Module is pretty good in finding various distributions, if you are not building wxWidgets yourself (preferrably by using CMake), make sure you have everything from the prebuild release extracted into one directory without modifying any paths of the extracted results. If CMake does not find the DLL variant (be it monolithic or components) of wxWidgets if you have added that directory to CMAKE_PREFIX_PATH, then you are missing something from the release and have to fix that. For Boost, you don't have to compile anything, only the headers are used. However, you cannot use the source tarball directly, you must install the headers component and use the installation location.

After the generation of the project, you have to build the proper targets to get a working result. By default the ALL_BUILD target gets build, this builds all binaries and executes the utility targets to process the ressources. Every single required ressource is dependency tracked and will get copied into the required location or you are getting a build error. If in doubt, build the whole workspace, this builds every target but the INSTALL target.

@tester0077
Copy link
Author

I have now reinstalled MSYS2 again and gone through the whole process of compiling wxFB in that environment and it all works as expected.
Unfortunately I don't know how to produce a workable debug version in that environment and since I am interested in addressing some of the things I have found annoying for myself, I very much would want a test and debug environment without too steep a learning curve.

Hence I have restarted the CMake process with a fresh copy of the code and was able to generate both a 32 & 64-bit sln files.
Both versions compile without error as generated and when I copy the necessary wxWidgets files to the stage directory, I am back where I started from before
Screenshot - 2022-04-14 , 10_38_17 AM

By now, I have confirmed that this error originates deep inside Windows - as the message shows - and is caused by an incomplete path or file name passed to the boost file system at database.cpp #608. Something in the code of the exception handling as compiled by MSVC mangles the format specifier of the output message.
From there on, it depends on what options I chose to either abort, retry or ignore, but all end up either in a crash or unusable copy of wxFB.

@sodevel
Copy link
Member

sodevel commented Apr 14, 2022

Good news: i can reproduce your error and just pushed a fix. Bad news: i have to add another point to the list above. Not sure yet how it's called, maybe the complete error message you will receive since the fix will give a hint.

@tester0077
Copy link
Author

tester0077 commented Apr 14, 2022

Edit: OK, checked the diff - and the crash no longer occurs, but the log window still shows the plugins as failing and the app pops up a final dialog
FinalPopUp-Screenshot - 2022-04-14 , 2_12_28 PM

The log window output:

14:12:07: Error: Error loading library plugins/additional/additional: boost::dll::shared_library::load() failed: %1 is not a valid Win32 application. <database.cpp@1181>
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\model\database.cpp@1192 ObjectDatabase::ImportComponentLibrary: [Database::ImportComponentLibrary] Importing D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\build64\stage\Debug\plugins\common\common.dll library
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\model\database.cpp@1192 ObjectDatabase::ImportComponentLibrary: [Database::ImportComponentLibrary] Importing D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\build64\stage\Debug\plugins\containers\containers.dll library
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\model\database.cpp@1192 ObjectDatabase::ImportComponentLibrary: [Database::ImportComponentLibrary] Importing D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\build64\stage\Debug\plugins\forms\forms.dll library
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\model\database.cpp@1192 ObjectDatabase::ImportComponentLibrary: [Database::ImportComponentLibrary] Importing D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\build64\stage\Debug\plugins\layout\layout.dll library
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxTreeCtrl" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxGrid" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxCheckListBox" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxTreeListCtrl" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxTreeListCtrlColumn" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxDataViewCtrl" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxDataViewTreeCtrl" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxDataViewListCtrl" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "dataViewColumn" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "dataViewListColumn" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxPropertyGrid" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxPropertyGridManager" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "propGridPage" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "propGridItem" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxRibbonBar" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxRibbonPage" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxRibbonPanel" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxRibbonButtonBar" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "ribbonButton" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "ribbonDropdownButton" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "ribbonHybridButton" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "ribbonToggleButton" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxRibbonToolBar" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "ribbonTool" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "ribbonDropdownTool" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "ribbonHybridTool" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "ribbonToggleTool" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "wxRibbonGallery" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\mainframe.cpp@1562 MainFrame::CreateSubmenuComponents: Missing Component for Class "ribbonGalleryItem" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@119 wxFbPalette::Create: [Palette] Pages 7
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxTreeCtrl" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxGrid" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxCheckListBox" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxTreeListCtrl" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxTreeListCtrlColumn" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxDataViewCtrl" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxDataViewTreeCtrl" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxDataViewListCtrl" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "dataViewColumn" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "dataViewListColumn" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxPropertyGrid" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxPropertyGridManager" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "propGridPage" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "propGridItem" of Package "Data".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxRibbonBar" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxRibbonPage" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxRibbonPanel" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxRibbonButtonBar" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "ribbonButton" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "ribbonDropdownButton" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "ribbonHybridButton" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "ribbonToggleButton" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxRibbonToolBar" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "ribbonTool" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "ribbonDropdownTool" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "ribbonHybridTool" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "ribbonToggleTool" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "wxRibbonGallery" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\palette.cpp@74 wxFbPalette::PopulateToolbar: Missing Component for Class "ribbonGalleryItem" of Package "Ribbon".
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\model\objectbase.cpp@234 ObjectBase::ObjectBase: new ObjectBase
D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\src\rad\appdata.cpp@2742 ApplicationData::NotifyEvent: event: wxEVT_FB_PROJECT_REFRESH


@tester0077
Copy link
Author

If I compile the release version I get the following popup

15:00:04: Error loading images: The file does not exist.
File: D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\build64rel\src\Release\resources\xml\icons.xml <stringutils.cpp@197>
15:00:04: Error loading application: The file does not exist.
File: D:\pkg\wx\MSVC2019\_3.1.4_2019\wxFormBuilderCM2\build64rel\src\Release\resources\xml\objtypes.xml <stringutils.cpp@197>
wxFormBuilder cannot continue.

@tester0077
Copy link
Author

At this time, I have been able to come up with a workaround to at least allows me to open the 64-bit debug version and run it successfully, without crashes.
To get to this stage, I had to add the path to my 64-bit wxWidgets DLLs to the system path.

As the version from Github installs all of its DLL into the same directory as the executable, there obviously is something different/wrong with the way the app searches for the necessary DLLs at start up.

One very frustrating issue with the loading of these DLLs is that none of the error messages identify the correct DLL which was not found. In fact the messages are misleading because they seem to be complain about the wxFB plugin DLLS, such as additional.dll, while in fact that DLL file was found, but one or more of the DLL it is dependent on, such as some of the wxWidgets DLLs are not found by the boost filesystem code.
Only by using the sysinternal utility procmon was I finally able to determine what was at the root of the issue, missing wxWidgets DLLs. rather tha the plugin DLLs

There are a couple of tweaks for the main CMakeList.txt
Since we are using wxWidgets DLLs, the main CMakelist. text needs the following changes:

if(MSVC)
  # Disable warnings about standard conformant code that is not conform to Microsoft standards
  add_compile_definitions(_CRT_SECURE_NO_WARNINGS _SCL_SECURE_NO_WARNINGS)
  # Without BOM the UTF-8 encoding doesn't get detected so enforce it
  add_compile_options(/source-charset:utf-8)
  # we're using wxWiddgets as DLLs
  add_compile_definitions( WXUSINGDLL )   <<<--------------------
endif()
#if(MSVC OR MINGW AND NOT MSYS)	 # MSVC does not use the monolithic DLL
if(MINGW AND NOT MSYS)
  set(wxWidgetsMonoDefault ON)
else()
  set(wxWidgetsMonoDefault OFF)
endif()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants