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 <scr...@crosswire.org <mailto:scr...@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
    <cont...@tklein.info <mailto:cont...@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@crosswire.org  
<mailto:sword-devel@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@crosswire.org
    <mailto:sword-devel@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@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@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@crosswire.org
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

Reply via email to