[sword-devel] Win32 FileMgr Subclass
Tobias Klein
contact at tklein.info
Sun Jul 26 16:56:15 EDT 2020
Hi Troy,
The latest version builds successfully.
I created a new intermediate release of sword-build-win32 for further
testing on Windows:
https://github.com/tobias-klein/sword-build-win32/releases/tag/v1.8.900-2020-07-26
Best regards,
Tobias
On 7/26/20 8:37 PM, Troy A. Griffitts wrote:
>
> Thanks Tobias,
>
> I've made these updates and should have fixed the error in filemgr.cpp
> on line 410. I appreciate the feedback. Please update and try this
> out and let me know. Thanks for testing your compiler.
>
> Troy
>
>
> On 7/26/20 8:25 PM, Tobias Klein wrote:
>>
>> To address the errors below I had to add the include for <windows.h>
>> both in *src/mgr/filemgr.cpp* and in *src/modules/commons/zipmgr.cpp*.
>>
>> After that I'm getting the next error:
>>
>> 1>C:\Users\tobi\Dev\sword-build-win32\sword\src\mgr\filemgr.cpp(410):
>> error C2664: 'BOOL FindNextFileA(HANDLE,LPWIN32_FIND_DATAA)': cannot
>> convert argument 2 from 'WIN32_FIND_DATAW *' to 'LPWIN32_FIND_DATAA'
>> 1>C:\Users\tobi\Dev\sword-build-win32\sword\src\mgr\filemgr.cpp(410):
>> note: Types pointed to are unrelated; conversion requires
>> reinterpret_cast, C-style cast or function-style cast
>>
>> Best regards,
>> Tobias
>>
>> On 7/26/20 4:44 PM, Troy A. Griffitts wrote:
>>>
>>> Can one of you guys try simply including <windows.h> at the top of
>>> filemgr.cpp and see if this fixes it for you?
>>>
>>>
>>> On 7/26/20 4:01 PM, Tobias Klein wrote:
>>>>
>>>> I'm getting similar error messages with Visual Studio 2019. Note
>>>> that I'm also generating the make files via CMake.
>>>>
>>>> First couple of error messages:
>>>>
>>>> 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(395,2):
>>>> error C2065: 'WIN32_FIND_DATAW': undeclared identifier
>>>> 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(395,19):
>>>> error C2146: syntax error: missing ';' before identifier 'fileData'
>>>>
>>>> 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(395,19):
>>>> error C2065: 'fileData': undeclared identifier
>>>>
>>>> 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(398,2):
>>>> error C2065: 'HANDLE': undeclared identifier
>>>>
>>>> 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(398,9):
>>>> error C2146: syntax error: missing ';' before identifier
>>>> 'findIterator'
>>>> 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(398,9):
>>>> error C2065: 'findIterator': undeclared identifier
>>>> 2>D:\a\sword-build-win32\sword-build-win32\sword\src\mgr\filemgr.cpp(398,51):
>>>> error C2065: 'fileData': undeclared identifier
>>>>
>>>>
>>>> Best regards,
>>>> Tobias
>>>>
>>>> On 7/26/20 3:00 PM, Greg Hellings wrote:
>>>>>
>>>>>
>>>>> On Sun, Jul 26, 2020 at 6:42 AM Troy A. Griffitts
>>>>> <scribe at crosswire.org <mailto:scribe at crosswire.org>> wrote:
>>>>>
>>>>> I've just committed the last bit for fixing the WIN32 Unicode
>>>>> issues. If anyone can try compiling and running Xiphos
>>>>> without the Xiphos patch or any other projects for Windows,
>>>>> and let me know if things work for them in folders which
>>>>> include Unicode character, I would appreciate it. I've tested
>>>>> BibleCS and it now works with a SWORD_PATH defined to
>>>>> /books/χαρις. I've tested using and installing modules in
>>>>> this configuration and believe all the bugs are squashed, but
>>>>> I would love confirmation from other projects.
>>>>>
>>>>> Thanks for any feedback,
>>>>>
>>>>> Troy
>>>>>
>>>>> During cross-compile I'm getting the following errors:
>>>>>
>>>>> [ 6%] Building CXX object
>>>>> CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj
>>>>> /usr/bin/i686-w64-mingw32-g++ -DCLUCENE2 -DCURLAVAILABLE
>>>>> -DCURLSFTPAVAILABLE -DEXCLUDEBZIP2 -DEXCLUDEXZ
>>>>> -DGLOBCONFPATH=\"/usr/i686-w64-mingw32/sys-root/mingw/etc/sword.conf\"
>>>>> -DUSEICUREGEX -DUSELUCENE -DU_USING_ICU_NAMESPACE
>>>>> -D_FTPLIB_NO_COMPAT -D_ICU_ -Dsword_EXPORTS
>>>>> @CMakeFiles/sword.dir/includes_CXX.rsp -D_ICUSWORD_ -g3 -Wall -O0
>>>>> -D_ICUSWORD_ -o CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj -c
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp: In static
>>>>> member function 'static std::vector<sword::DirEntry>
>>>>> sword::FileMgr::getDirList(const char*, bool, bool)':
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:395:2:
>>>>> error: 'WIN32_FIND_DATAW' was not declared in this scope
>>>>> 395 | WIN32_FIND_DATAW fileData;
>>>>> | ^~~~~~~~~~~~~~~~
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:398:2:
>>>>> error: 'HANDLE' was not declared in this scope
>>>>> 398 | HANDLE findIterator = FindFirstFileW(wcharPath, &fileData);
>>>>> | ^~~~~~
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:399:6:
>>>>> error: 'findIterator' was not declared in this scope
>>>>> 399 | if (findIterator != INVALID_HANDLE_VALUE) {
>>>>> | ^~~~~~~~~~~~
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:399:22:
>>>>> error: 'INVALID_HANDLE_VALUE' was not declared in this scope
>>>>> 399 | if (findIterator != INVALID_HANDLE_VALUE) {
>>>>> | ^~~~~~~~~~~~~~~~~~~~
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:401:35:
>>>>> error: 'fileData' was not declared in this scope
>>>>> 401 | SWBuf dirEntName = wcharToUTF8(fileData.cFileName);
>>>>> | ^~~~~~~~
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:405:49:
>>>>> error: 'FILE_ATTRIBUTE_DIRECTORY' was not declared in this scope
>>>>> 405 | i.isDirectory = fileData.dwFileAttributes &
>>>>> FILE_ATTRIBUTE_DIRECTORY;
>>>>> | ^~~~~~~~~~~~~~~~~~~~~~~~
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:409:40:
>>>>> error: 'fileData' was not declared in this scope
>>>>> 409 | } while (FindNextFile(findIterator, &fileData) != 0);
>>>>> | ^~~~~~~~
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:409:12:
>>>>> error: 'FindNextFile' was not declared in this scope
>>>>> 409 | } while (FindNextFile(findIterator, &fileData) != 0);
>>>>> | ^~~~~~~~~~~~
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:410:3:
>>>>> error: 'FindClose' was not declared in this scope; did you mean
>>>>> '_findclose'?
>>>>> 410 | FindClose(findIterator);
>>>>> | ^~~~~~~~~
>>>>> | _findclose
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:397:17:
>>>>> warning: unused variable 'wcharPath' [-Wunused-variable]
>>>>> 397 | const wchar_t *wcharPath = (const wchar_t
>>>>> *)wcharBuf.getRawData();
>>>>> | ^~~~~~~~~
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp: In static
>>>>> member function 'static int sword::FileMgr::createParent(const
>>>>> char*)':
>>>>> /builddir/build/BUILD/sword-1.8.900/src/mgr/filemgr.cpp:436:5:
>>>>> error: '_wmkdir' was not declared in this scope; did you mean 'mkdir'?
>>>>> 436 | _wmkdir((const wchar_t *)utf8ToWChar(buf).getRawData());
>>>>> | ^~~~~~~
>>>>> | mkdir
>>>>> make[2]: *** [CMakeFiles/sword.dir/build.make:283:
>>>>> CMakeFiles/sword.dir/src/mgr/filemgr.cpp.obj] Error 1
>>>>>
>>>>> I'm assuming there's a new package or macro I need to define? On
>>>>> my system the WIN32_FIND_DATAW struct is defined in both
>>>>> minwinbase.h and shtypes.h. I'm building with MinGW which might
>>>>> have a different header structure than your compilers, if you're
>>>>> using Borland?
>>>>>
>>>>> --Greg
>>>>>
>>>>>
>>>>> On 7/20/20 7:18 PM, Greg Hellings wrote:
>>>>>> Sorry for the previous blank email - user error when I tried
>>>>>> to reply:
>>>>>>
>>>>>> On Sun, Jul 19, 2020 at 2:40 PM Tobias Klein
>>>>>> <contact at tklein.info <mailto:contact at tklein.info>> wrote:
>>>>>>
>>>>>> Thanks for giving me the background on this, Karl! I
>>>>>> appreciate it!
>>>>>>
>>>>>> Is Xiphos the only frontend that has been patching Sword
>>>>>> for this purpose? Then I suppose all other frontends
>>>>>> suffer from this issue, huh?
>>>>>>
>>>>>>
>>>>>> When I first encountered this patch in Xiphos I tested with
>>>>>> BibleTime and The Sword Project for Windows and both of them
>>>>>> do crash under these circumstances.
>>>>>>
>>>>>> Yes, other toolkits such as Qt do have wrappers for this
>>>>>> shortcoming already, but none of the other front ends I've
>>>>>> worked with have bothered to put in the effort to produce a
>>>>>> patched version of Sword to fix the crash.
>>>>>>
>>>>>> --Greg
>>>>>>
>>>>>> _______________________________________________
>>>>>> sword-devel mailing list:sword-devel at crosswire.org <mailto:sword-devel at crosswire.org>
>>>>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>>>>> Instructions to unsubscribe/change your settings at above page
>>>>> _______________________________________________
>>>>> sword-devel mailing list: sword-devel at crosswire.org
>>>>> <mailto:sword-devel at crosswire.org>
>>>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>>>> Instructions to unsubscribe/change your settings at above page
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> sword-devel mailing list:sword-devel at crosswire.org
>>>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>>>> Instructions to unsubscribe/change your settings at above page
>>>>
>>>> _______________________________________________
>>>> sword-devel mailing list:sword-devel at crosswire.org
>>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>>> Instructions to unsubscribe/change your settings at above page
>>>
>>> _______________________________________________
>>> sword-devel mailing list:sword-devel at crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>
>> _______________________________________________
>> sword-devel mailing list:sword-devel at crosswire.org
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.crosswire.org/pipermail/sword-devel/attachments/20200726/b8a5f8b0/attachment-0001.html>
More information about the sword-devel
mailing list