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

crash when importing files from directory with too long path on Windows #8

Open
vmario89 opened this issue Oct 16, 2019 · 14 comments
Open

Comments

@vmario89
Copy link

Hi,

Plater.exe crashes unexspectedly when pressing the "Add part(s)" button. The fix seems to put the files to some directories up to shorten the path. I am using Windows 10 64 Bit Pro Version.

grafik

I made some testings where i put the file chainy_v2.stl some dirs up until it works instead crashing. I just renamed the paths because they contained some info i dont want to publish here.

  • fail: C:\Users\mario\Seafile\cloud.123456-STLEXPOR.DD\Gedöns\123456Design\Keyorganizer123456\STL Export\chainy_v2.stl
  • fail: C:\Users\mario\Seafile\cloud.123456-STLEXPOR.DD\Gedöns\123456Design\Keyorganizer123456\chainy_v2.stl
  • fail: C:\Users\mario\Seafile\cloud.123456-STLEXPOR.DD\Gedöns\123456Design\chainy_v2.stl
  • fail: C:\Users\mario\Seafile\cloud.123456-STLEXPOR.DD\Gedöns\chainy_v2.stl
  • works: C:\Users\mario\Seafile\cloud.123456-STLEXPOR.DD\chainy_v2.stl

grafik

maybe somebody has an idea how to fix it.
regards, Mario

@vmario89
Copy link
Author

some add. info: seems also happening if path + filename in total get too long

@combolek
Copy link
Contributor

Can you try the binaries from here:
https://drive.google.com/open?id=1USaJTZzJk_7KIQr8ctoPnoI9gQ6FYcY9

@Gregwar
Copy link
Contributor

Gregwar commented Oct 31, 2019

@combolek what fix did you make?

It can be also related to special chars (here the ö)

@vmario89
Copy link
Author

Hi, thanks for the download @combolek . But the given executable has the same problem. Indeed i've overseen the special character Ö which is typical in europe. In general UTF-8 might be good solution because many countries have à á â and other chars in their daily used names.

I now renamed the folder and it works (but in my case a bad solution)

@Gregwar
Copy link
Contributor

Gregwar commented Oct 31, 2019

Ok @vmario89, I'm not saying you shouldn't use UTF-8 characters, but just trying to isolate what makes the program crash
Do you confirm that the same PATH with and without the special char have different behavior?

@vmario89
Copy link
Author

hi @Gregwar, yes the "ö" in path is the problem. I tested it with

"C:\Users\mario\Seafile\cloud.123456-STLEXPOR.DD\Gedöns\123456Design\chainy_v2.stl" -> fail
"C:\Users\mario\Seafile\cloud.123456-STLEXPOR.DD\Gedons\123456Design\chainy_v2.stl" -> good

regards, Mario

@combolek
Copy link
Contributor

I was all wrong, ignore me.

@combolek
Copy link
Contributor

For the native MSVC build the following workaround works for me:

--- a/gui/main.cpp
+++ b/gui/main.cpp
@@ -13,6 +13,10 @@ Q_IMPORT_PLUGIN(QWindowsVistaStylePlugin);
 
 int main(int argc, char *argv[])
 {
+#if defined(_MSC_VER)
+    // set default encoding for fopen/chdir/etc.
+    setlocale(LC_CTYPE, ".utf8");
+#endif
     QApplication a(argc, argv);
 
     QGLFormat glf = QGLFormat::defaultFormat();

@vmario89 can you try these binaries?
https://drive.google.com/file/d/1ZdfkoLtuxTc07pidsPaVaUHsK0e3Y6kh/view?usp=sharing

But even if this works, it's only a partial solution because it cannot handle command line arguments (so it won't work for the plater.exe command line app). Also, I think the official build uses mingw (?) and this solution does not work then either.

combolek added a commit to combolek/Plater that referenced this issue Mar 1, 2021
Set the process locale to UTF-8 on Windows using an embedded manifest. Note this only works on Windows 10 Version 1903 and later.
combolek added a commit to combolek/Plater that referenced this issue Mar 1, 2021
Set the process locale to UTF-8 on Windows using an embedded manifest. Note this only works on Windows 10 Version 1903 and later.
@combolek
Copy link
Contributor

combolek commented Mar 1, 2021

I figured out a better way to fix it, see PR #30. It requires Windows 10 1903 or later but it also handles paths on the command line.

@vmario89 can you try these updated binaries?
https://drive.google.com/drive/folders/1USaJTZzJk_7KIQr8ctoPnoI9gQ6FYcY9

combolek added a commit to combolek/Plater that referenced this issue Mar 1, 2021
Set the process locale to UTF-8 on Windows using an embedded manifest. Note this only works on Windows 10 Version 1903 and later.
@ameyp
Copy link

ameyp commented Jun 7, 2021

Stopped crashing for me with your latest updated binaries @combolek

@combolek
Copy link
Contributor

combolek commented Jun 8, 2021

Great, thanks for testing. Let's hope PR #30 will be merged.

Gregwar added a commit that referenced this issue Jun 8, 2021
@Gregwar
Copy link
Contributor

Gregwar commented Jun 8, 2021

It is done

@vmario89
Copy link
Author

vmario89 commented Jun 8, 2021

Oh nice! Would it be possible to provide a recent binary download / release set?

regards, Mario :)

@combolek
Copy link
Contributor

combolek commented Jun 8, 2021

Did you try the ones from the link above?

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

4 participants