-
Notifications
You must be signed in to change notification settings - Fork 367
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
Comments
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 |
Not sure why this issue was closed, It still is not resolved. 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,
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" |
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:
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 |
I have now reinstalled MSYS2 again and gone through the whole process of compiling wxFB in that environment and it all works as expected. 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. 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. |
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. |
If I compile the release version I get the following popup
|
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. 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. There are a couple of tweaks for the main CMakeList.txt
|
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
Clicking on 'No' pops up the second timer error - not really a surprise
Click on 'Cancel' to try and proceed give the third popup
regarding a map iterator issue
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
The text was updated successfully, but these errors were encountered: