BakkesModInjectorCpp
BakkesModInjectorCpp copied to clipboard
what is the best straight forward way to build this?
im trying to build it in vs 2022 but it has all kind of errors like name followed by '::' must be a class or namespace name
i was able to install curlpp and qt5 with vcpkg and link it in the project, but it says it has problems with namespace or classes.
is there anyone who can help?
Same question here
I've downloaded QT Creator and am able to open up the UI in their designer.
Opening with Visual Studio or CLion
I tried running this in CLion & Visual Studio (not code) with similar results as the previous comments. In short, lots of errors and no way to build. The repo does appear to be a Visual Studio solution, so I'm not sure why I can't just pull and build...Errors
Cannot open include file: 'QtWidgets/QMainWindow': No such file or directory
Warnings
name followed by '::' must be a class or namespace name
Visual Studio Screenshot
Qt Creator Screenshot
Attempting to build
I haven't been successful getting it to Build. In Qt Creator the Build button is greyed out and I'm getting the following error when I press Run (or when I press "Start Debugging of Startup Project"):
:-1: error: You need to set an executable in the custom run configuration.
In an attempt to get past the error I set the Run Executable (Projects -> Build & Run -> Run -> Executable) to BakkesModInjectorCpp\Output\bakkesmod_setup.exe and clicked Run. The error did not occur, but it just started the setup executable, after installation my changes were not reflected. This feels expected since I have not been successful in building.
Running the `bakkesmod_setup.exe`
The `bakkesmod_setup.exe` is the one that is checked into `git`, not something that I was successful in building...Running threw a few errors on launch which when clicked past, produced a strange very small window for bakkesmod with an error. I think it's just a really old version of BakkesMod. The bakkesmod_setup.exe checked into git is 5 years old.
bakkesmod_setup.exe or are there other artifacts produced during build?)
Why Qt?
I found the experience with Qt rather awkward. I'm concerned about what's going to happen at the end of the Qt Creator evaluation period in 5 days... Will I no longer be able to open the project & edit it in their designer? I don't want to pay for this product.
It's been awhile since I've built in an environment like this, but it appears I cannot retrieve Qt dependencies using the standard methods and need to rely on signing in and getting licensing to get access to build using Qt. Still don't know how to access those libraries to build from Visual Studio though.
Next steps
If anyone has any thoughts or suggestions on what I should try to get unstuck here, I'd love to hear from you!
@Bakkes Could you give us some hints as to how to get things running locally for development/testing? 🙏
I've got some minor UI design improvements I wanted to investigate such as improvements to default window size, fixing windows scaling issues, etc. Maybe I'd go further if I can find success with that.
Thanks in advance! Jack
Okay, I was able to make progress in Visual Studio to build the solution.
First off you need Qt Visual Studio Tools which can be got from Extensions -> Manage Extensions.
After installing it warned that the Qt version in the solution was outdated and not supported. It didn't look like I could continue as-is. So I performed the upgrade process (I will fork and push these changes when I can get a build to work).
Next you'll need to have downloaded Qt to your machine via the online installer and this will give you the Qt Maintenance Tool. Open this tool and Add/Remove Components. Search for msvc, select Qt -> Qt 6.8.2 -> MSVC 2022 64 bit. Install this 2.4g file.
Go back to visual studio. Open Extensions -> Qt VS Tools -> Qt Versions. Click Import and navigate to C:\Qt\6.8.2\msvc2022_64. This may show two versions afterwards. Ensure the msvc2022_64 option is default, any others can be removed.
Change the build platform: Build -> Configuration Manager. Under BakkesModInjectorC++ change the platform to x64. Previously it was targetting 32 bit, but there no longer appears to be a Qt that supports 32 bit.
Lastly, Change the project to use the Qt version you have prepared. Right click BakkesModInjectorC++ in the Solution Explorer and go to Properties -> Configuration Properties -> Qt Project Settings -> General -> Qt Installation. Select the installation 6.8.2_msvc2022_64.
Finally, when you build, you should make more progress and see some new build errors. Here's a small sampling of the errors I'm seeing now. The full output is below.
class "QNetworkAccessManager" has no member "NetworkAccessibility"
cannot open source file "curlpp/cURLpp.hpp"
Cannot open include file: 'zip_file.hpp': No such file or directory
'OnPatreonClick': is not a member of 'QMainWindow'
Full build output
Build started at 11:40 PM...
1>------ Build started: Project: BakkesModInjectorC++, Configuration: Release x64 ------
1> Qt/MSBuild: 3.3.1.1
1>Reading Qt configuration (C:/Qt/6.8.2/msvc2022_64/bin/qmake)
1> Qt: 6.8.2
1>cl : command line warning D9002: ignoring unknown option '/p:VcpkgEnabled=false'
1>cl : command line warning D9002: ignoring unknown option '/p:VcpkgEnabled=false'
1>BakkesModInjectorCpp.cpp
1>cl : command line warning D9002: ignoring unknown option '/p:VcpkgEnabled=false'
1>BakkesModInstallation.cpp
1>cl : command line warning D9002: ignoring unknown option '/p:VcpkgEnabled=false'
1>DllInjector.cpp
1>cl : command line warning D9002: ignoring unknown option '/p:VcpkgEnabled=false'
1>Installer.cpp
1>cl : command line warning D9002: ignoring unknown option '/p:VcpkgEnabled=false'
1>cl : command line warning D9002: ignoring unknown option '/p:VcpkgEnabled=false'
1>main.cpp
1>cl : command line warning D9002: ignoring unknown option '/p:VcpkgEnabled=false'
1>SettingsManager.cpp
1>UpdateDownloader.cpp
1>cl : command line warning D9002: ignoring unknown option '/p:VcpkgEnabled=false'
1>Updater.cpp
1>cl : command line warning D9002: ignoring unknown option '/p:VcpkgEnabled=false'
1>WindowsUtils.cpp
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\SettingsManager.cpp(27,111): warning C4267: 'argument': conversion from 'size_t' to 'DWORD', possible loss of data
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\Installer.cpp(5,10): error C1083: Cannot open include file: 'zip_file.hpp': No such file or directory
1>C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\xutility(4868,22): warning C4244: '=': conversion from 'const wchar_t' to 'char', possible loss of data
1>(compiling source file 'WindowsUtils.cpp')
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\xutility(4868,22):
1> the template instantiation context (the oldest one first) is
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\WindowsUtils.cpp(156,7):
1> see reference to function template instantiation '_OutIt std::copy<std::_String_const_iterator<std::_String_val<std::_Simple_types<_Elem>>>,std::_String_iterator<std::_String_val<std::_Simple_types<char>>>>(_InIt,_InIt,_OutIt)' being compiled
1> with
1> [
1> _OutIt=std::_String_iterator<std::_String_val<std::_Simple_types<char>>>,
1> _Elem=wchar_t,
1> _InIt=std::_String_const_iterator<std::_String_val<std::_Simple_types<wchar_t>>>
1> ]
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\xutility(4881,36):
1> see reference to function template instantiation '_OutIt *std::_Copy_unchecked<const wchar_t*,const wchar_t*,char*>(_InIt,_Sent,_OutIt)' being compiled
1> with
1> [
1> _OutIt=char *,
1> _InIt=const wchar_t *,
1> _Sent=const wchar_t *
1> ]
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\GeneratedFiles\ui_BakkesModInjectorCpp.h(182,115): error C2039: 'OnPatreonClick': is not a member of 'QMainWindow'
1>(compiling source file 'main.cpp')
1> C:\Qt\6.8.2\msvc2022_64\include\QtWidgets\qmainwindow.h(24,24):
1> see declaration of 'QMainWindow'
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\GeneratedFiles\ui_BakkesModInjectorCpp.h(182,115): error C2065: 'OnPatreonClick': undeclared identifier
1>(compiling source file 'main.cpp')
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\UpdateDownloader.h(14,10): error C1083: Cannot open include file: 'curlpp/cURLpp.hpp': No such file or directory
1>(compiling source file 'UpdateDownloader.cpp')
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\GeneratedFiles\ui_BakkesModInjectorCpp.h(182,115): error C2039: 'OnPatreonClick': is not a member of 'QMainWindow'
1>(compiling source file 'BakkesModInjectorCpp.cpp')
1> C:\Qt\6.8.2\msvc2022_64\include\QtWidgets\qmainwindow.h(24,24):
1> see declaration of 'QMainWindow'
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\GeneratedFiles\ui_BakkesModInjectorCpp.h(182,115): error C2065: 'OnPatreonClick': undeclared identifier
1>(compiling source file 'BakkesModInjectorCpp.cpp')
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\vdf_parser.h(115,31): warning C4996: 'std::codecvt_utf8_utf16<wchar_t,1114111,(std::codecvt_mode)0>': warning STL4017: std::wbuffer_convert, std::wstring_convert, and the <codecvt> header (containing std::codecvt_mode, std::codecvt_utf8, std::codecvt_utf16, and std::codecvt_utf8_utf16) are deprecated in C++17. (The std::codecvt class template is NOT deprecated.) The C++ Standard doesn't provide equivalent non-deprecated functionality; consider using MultiByteToWideChar() and WideCharToMultiByte() from <Windows.h> instead. You can define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to suppress this warning.
1>(compiling source file 'BakkesModInstallation.cpp')
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\codecvt(442,39):
1> see declaration of 'std::codecvt_utf8_utf16'
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\vdf_parser.h(115,10): warning C4996: 'std::wstring_convert<std::codecvt_utf8_utf16<wchar_t,1114111,(std::codecvt_mode)0>,wchar_t,std::allocator<wchar_t>,std::allocator<char>>': warning STL4017: std::wbuffer_convert, std::wstring_convert, and the <codecvt> header (containing std::codecvt_mode, std::codecvt_utf8, std::codecvt_utf16, and std::codecvt_utf8_utf16) are deprecated in C++17. (The std::codecvt class template is NOT deprecated.) The C++ Standard doesn't provide equivalent non-deprecated functionality; consider using MultiByteToWideChar() and WideCharToMultiByte() from <Windows.h> instead. You can define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to suppress this warning.
1>(compiling source file 'BakkesModInstallation.cpp')
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\xlocbuf(303,39):
1> see declaration of 'std::wstring_convert'
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\vdf_parser.h(115,60): warning C4996: 'std::wstring_convert<std::codecvt_utf8_utf16<wchar_t,1114111,(std::codecvt_mode)0>,wchar_t,std::allocator<wchar_t>,std::allocator<char>>::wstring_convert': warning STL4017: std::wbuffer_convert, std::wstring_convert, and the <codecvt> header (containing std::codecvt_mode, std::codecvt_utf8, std::codecvt_utf16, and std::codecvt_utf8_utf16) are deprecated in C++17. (The std::codecvt class template is NOT deprecated.) The C++ Standard doesn't provide equivalent non-deprecated functionality; consider using MultiByteToWideChar() and WideCharToMultiByte() from <Windows.h> instead. You can define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to suppress this warning.
1>(compiling source file 'BakkesModInstallation.cpp')
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\vdf_parser.h(119,18): warning C4996: 'std::wstring_convert<std::codecvt_utf8_utf16<wchar_t,1114111,(std::codecvt_mode)0>,wchar_t,std::allocator<wchar_t>,std::allocator<char>>::to_bytes': warning STL4017: std::wbuffer_convert, std::wstring_convert, and the <codecvt> header (containing std::codecvt_mode, std::codecvt_utf8, std::codecvt_utf16, and std::codecvt_utf8_utf16) are deprecated in C++17. (The std::codecvt class template is NOT deprecated.) The C++ Standard doesn't provide equivalent non-deprecated functionality; consider using MultiByteToWideChar() and WideCharToMultiByte() from <Windows.h> instead. You can define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING or _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS to suppress this warning.
1>(compiling source file 'BakkesModInstallation.cpp')
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\Updater.h(28,48): error C2039: 'NetworkAccessibility': is not a member of 'QNetworkAccessManager'
1>(compiling source file 'Updater.cpp')
1> C:\Qt\6.8.2\msvc2022_64\include\QtNetwork\qnetworkaccessmanager.h(35,24):
1> see declaration of 'QNetworkAccessManager'
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\Updater.h(28,48): error C2061: syntax error: identifier 'NetworkAccessibility'
1>(compiling source file 'Updater.cpp')
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\Updater.h(28,48): error C2039: 'NetworkAccessibility': is not a member of 'QNetworkAccessManager'
1>(compiling source file 'BakkesModInjectorCpp.cpp')
1> C:\Qt\6.8.2\msvc2022_64\include\QtNetwork\qnetworkaccessmanager.h(35,24):
1> see declaration of 'QNetworkAccessManager'
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\Updater.h(28,48): error C2061: syntax error: identifier 'NetworkAccessibility'
1>(compiling source file 'BakkesModInjectorCpp.cpp')
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\Updater.h(28,48): error C2039: 'NetworkAccessibility': is not a member of 'QNetworkAccessManager'
1>(compiling source file 'main.cpp')
1> C:\Qt\6.8.2\msvc2022_64\include\QtNetwork\qnetworkaccessmanager.h(35,24):
1> see declaration of 'QNetworkAccessManager'
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\Updater.h(28,48): error C2061: syntax error: identifier 'NetworkAccessibility'
1>(compiling source file 'main.cpp')
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\updatedownloader.h(14,10): error C1083: Cannot open include file: 'curlpp/cURLpp.hpp': No such file or directory
1>(compiling source file 'BakkesModInjectorCpp.cpp')
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\GeneratedFiles\ui_BakkesModInjectorCpp.h(182,115): error C2039: 'OnPatreonClick': is not a member of 'QMainWindow'
1>(compiling source file 'Updater.cpp')
1> C:\Qt\6.8.2\msvc2022_64\include\QtWidgets\qmainwindow.h(24,24):
1> see declaration of 'QMainWindow'
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\GeneratedFiles\ui_BakkesModInjectorCpp.h(182,115): error C2065: 'OnPatreonClick': undeclared identifier
1>(compiling source file 'Updater.cpp')
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\Updater.cpp(8,10): error C1083: Cannot open include file: 'curlpp/cURLpp.hpp': No such file or directory
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,37): error C2440: '<function-style-cast>': cannot convert from 'const std::filesystem::directory_entry' to 'std::ifstream'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,37):
1> 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream': no overloaded function could convert all the argument types
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\fstream(62,5):
1> could be 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(FILE *)'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,37):
1> 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(FILE *)': cannot convert argument 1 from 'const std::filesystem::directory_entry' to 'FILE *'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,38):
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\fstream(53,5):
1> or 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const std::wstring &,std::ios_base::openmode,int)'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,37):
1> 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const std::wstring &,std::ios_base::openmode,int)': cannot convert argument 1 from 'const std::filesystem::directory_entry' to 'const std::wstring &'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,38):
1> Reason: cannot convert from 'const std::filesystem::directory_entry' to 'const std::wstring'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,38):
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\fstream(44,5):
1> or 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const wchar_t *,std::ios_base::openmode,int)'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,37):
1> 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const wchar_t *,std::ios_base::openmode,int)': cannot convert argument 1 from 'const std::filesystem::directory_entry' to 'const wchar_t *'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,38):
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\fstream(40,5):
1> or 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const std::string &,std::ios_base::openmode,int)'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,37):
1> 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const std::string &,std::ios_base::openmode,int)': cannot convert argument 1 from 'const std::filesystem::directory_entry' to 'const std::string &'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,38):
1> Reason: cannot convert from 'const std::filesystem::directory_entry' to 'const std::string'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,38):
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\fstream(31,5):
1> or 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const char *,std::ios_base::openmode,int)'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,37):
1> 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const char *,std::ios_base::openmode,int)': cannot convert argument 1 from 'const std::filesystem::directory_entry' to 'const char *'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,38):
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\fstream(58,5):
1> or 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const _Ty &,std::ios_base::openmode,int)'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(468,37):
1> while trying to match the argument list '(const std::filesystem::directory_entry)'
1>C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,37): error C2440: '<function-style-cast>': cannot convert from 'const std::filesystem::directory_entry' to 'std::ifstream'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,37):
1> 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream': no overloaded function could convert all the argument types
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\fstream(62,5):
1> could be 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(FILE *)'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,37):
1> 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(FILE *)': cannot convert argument 1 from 'const std::filesystem::directory_entry' to 'FILE *'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,38):
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\fstream(53,5):
1> or 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const std::wstring &,std::ios_base::openmode,int)'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,37):
1> 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const std::wstring &,std::ios_base::openmode,int)': cannot convert argument 1 from 'const std::filesystem::directory_entry' to 'const std::wstring &'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,38):
1> Reason: cannot convert from 'const std::filesystem::directory_entry' to 'const std::wstring'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,38):
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\fstream(44,5):
1> or 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const wchar_t *,std::ios_base::openmode,int)'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,37):
1> 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const wchar_t *,std::ios_base::openmode,int)': cannot convert argument 1 from 'const std::filesystem::directory_entry' to 'const wchar_t *'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,38):
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\fstream(40,5):
1> or 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const std::string &,std::ios_base::openmode,int)'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,37):
1> 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const std::string &,std::ios_base::openmode,int)': cannot convert argument 1 from 'const std::filesystem::directory_entry' to 'const std::string &'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,38):
1> Reason: cannot convert from 'const std::filesystem::directory_entry' to 'const std::string'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,38):
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\fstream(31,5):
1> or 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const char *,std::ios_base::openmode,int)'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,37):
1> 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const char *,std::ios_base::openmode,int)': cannot convert argument 1 from 'const std::filesystem::directory_entry' to 'const char *'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,38):
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1> C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\include\fstream(58,5):
1> or 'std::basic_ifstream<char,std::char_traits<char>>::basic_ifstream(const _Ty &,std::ios_base::openmode,int)'
1> C:\Users\my-user\source\repos\BakkesModInjectorCpp\BakkesModInjectorC++\BakkesModInstallation.cpp(523,37):
1> while trying to match the argument list '(const std::filesystem::directory_entry)'
1>Done building project "BakkesModInjectorC++.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
========== Build completed at 11:40 PM and took 04.338 seconds ==========
I'm going to pause for the night, but hopefully I get the urge to continue sometime soon. I am a bit worried about the process of updating to the latest version of Qt as the migration may cause a lot of problems, hopefully not 🤞. Additionally, I saw strong hints from the original author that 64 bit was not friendly. So I hope the required upgrade to x64 from x86 will go smoothly as well.
Possibly just upgrading to the latest Qt will solve some of the UI concerns I had around Windows scaling, etc.
@Bakkes if I do find success here and eventually am able to upgrade the UI to the latest Qt and get some quality of life UI changes in, are you able to provide support to get the PR merged and a new release out for users with the changes? I'm happy to put in leg work for testing and verification, I just want to know that if I spend time on this that it will eventually make its way to end-users.
@Bakkes if I do find success here and eventually am able to upgrade the UI to the latest Qt and get some quality of life UI changes in, are you able to provide support to get the PR merged and a new release out for users with the changes? I'm happy to put in leg work for testing and verification, I just want to know that if I spend time on this that it will eventually make its way to end-users.
Regardless if he says yes or no, just know that you're doing good work! So please host it somewhere even if the pr can't be merged! A crap ROM is people would appreciate it. Thanks for helping the community btw. You have went above and beyond what any typical person would do and for that I say thanks!
@Bakkes if I do find success here and eventually am able to upgrade the UI to the latest Qt and get some quality of life UI changes in, are you able to provide support to get the PR merged and a new release out for users with the changes? I'm happy to put in leg work for testing and verification, I just want to know that if I spend time on this that it will eventually make its way to end-users.
Might be willing to help, my time has been so limited lately though.