I'm using the lates Wine 7.0 on Ubuntu 18.04.
When running IxExplorer.exe application (installed from a Windows intaller):
wine /users/galileo101/gregory/.wine/drive_c/Program\ Files\ \(x86\)/Ixia/IxOS/9.12.2100.7/IxExplorer.exe
I received "Wine C++ Runtime library" message box error.
I then tried to debug the error and ran the application with the debug messages:
WINEDEBUG=+all wine /users/galileo101/gregory/.wine/drive_c/Program\ Files\ \(x86\)/Ixia/IxOS/9.12.2100.7/IxExplorer.exe
In the debug output I found the above error message:
3828042.603
3828042.603
and also slightly before it the following messages sequence that ends with EXCEPTION_WINE_CXX_EXCEPTION message
that seems to lead to the abovementioned runtime error.
3828042.491
3828042.491
3828042.491
3828042.491
3828042.491
3828042.491
3828042.491
3828042.491
3828042.491
3828042.491
3828042.491
3828042.491
3828042.491
3828042.491
3828042.491
Analyzing the above messages sequence I came to the following conclusions.
The EXCEPTION_WINE_CXX_EXCEPTION exception seems to be a consequence of the following error in Wine's SHGetFolderPathAndSubDirW function:
3828042.491
3828042.491
This function was called with "nFolder" input argument value 0x806f according to the shellpath.c source code https://github.com/wine-mirror/wine/blo ... hellpath.c
3828042.491
The code in the function then sets folder variable to the 0x6f value.
DWORD folder = nFolder & CSIDL_FOLDER_MASK;
The folder variable is used as index to the CSIDL_Data array.
type = CSIDL_Data[folder].type;
which contains the following entry in the index 0x6f.
{ /* 0x6f */
&FOLDERID_UserProgramFilesCommon,
CSIDL_Type_Disallowed, /* FIXME */
NULL,
NULL,
KF_CATEGORY_PERUSER, /* category */
UserProgramFilesCommonW, /* name */
NULL, /* description */
&FOLDERID_UserProgramFiles, /* parent */
CommonW, /* relative path */
NULL, /* parsing */
NULL, /* tooltip */
NULL, /* localized */
NULL, /* icon */
NULL, /* security */
0, /* attributes */
0, /* flags */
&GUID_NULL /* typeid */
},
The above entry for UserProgramFilesCommonW path is marked as CSIDL_Type_Disallowed which finally causes SHGetFolderPathAndSubDirW function failure which in turn causes the EXCEPTION_WINE_CXX_EXCEPTION.
Now my question is whether my analysis is correct ? And if so what does it mean that the path is CSIDL_Type_Disallowed ?
Does it means that Wine does not support applications that call SHGetFolderPathAndSubDirW with this path ?
Thanks,
Gregory