0
0

Hello,

After investigating crashes at startup of an app on windows 32 bit and arm machines, I found something very weird on the Windows Store version of fmodex : some configuration / arch versions seem to have been built for the desktop version of the vc runtime (vccorlib120.dll etc.) instead of the modern app one (vccorlib120_app.dll etc.).
Version of fmodex is 0x00044434

There is the debug trace of dll loading on the 6 combination of configuration (Logging or release) and architecture (x86, x64, arm):

[code:35lurc0m]
x86 logging (wrong vc runtime)
‘Qobuz.exe’ (Win32): Loaded ‘C:\ws\qobuz\Qobuzz 8.1\qobuz-win8-master\Qobuz\Qobuz\bin\x86\Debug\AppX\fmodexWSA81L.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Windows\SysWOW64\vccorlib120d.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Windows\SysWOW64\msvcp120d.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Windows\SysWOW64\msvcr120d.dll’. Cannot find or open the PDB file.

x86 release (wrong vc runtime)
‘Qobuz.exe’ (Win32): Loaded ‘C:\ws\qobuz\Qobuzz 8.1\qobuz-win8-master\Qobuz\Qobuz\bin\x86\Release\AppX\fmodexWSA81.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Windows\SysWOW64\vccorlib120.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Windows\SysWOW64\msvcp120.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Windows\SysWOW64\msvcr120.dll’. Cannot find or open the PDB file.

x64 logging (good)
‘Qobuz.exe’ (Win32): Loaded ‘C:\ws\qobuz\Qobuzz 8.1\qobuz-win8-master\Qobuz\Qobuz\bin\x64\Debug\AppX\fmodexWSA81L64.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Program Files\WindowsApps\Microsoft.VCLibs.120.00.Debug_12.0.21005.1_x64__8wekyb3d8bbwe\vccorlib120d_app.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Program Files\WindowsApps\Microsoft.VCLibs.120.00.Debug_12.0.21005.1_x64__8wekyb3d8bbwe\msvcp120d_app.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Program Files\WindowsApps\Microsoft.VCLibs.120.00.Debug_12.0.21005.1_x64__8wekyb3d8bbwe\msvcr120d_app.dll’. Cannot find or open the PDB file.

x64 release (good)
‘Qobuz.exe’ (Win32): Loaded ‘C:\ws\qobuz\Qobuzz 8.1\qobuz-win8-master\Qobuz\Qobuz\bin\x64\Release\AppX\fmodexWSA8164.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Program Files\WindowsApps\Microsoft.VCLibs.120.00_12.0.21005.1_x64__8wekyb3d8bbwe\vccorlib120_app.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Program Files\WindowsApps\Microsoft.VCLibs.120.00_12.0.21005.1_x64__8wekyb3d8bbwe\msvcp120_app.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Program Files\WindowsApps\Microsoft.VCLibs.120.00_12.0.21005.1_x64__8wekyb3d8bbwe\msvcr120_app.dll’. Cannot find or open the PDB file.

arm logging (good)
‘Qobuz.exe’ (Win32): Loaded ‘C:\Users\Simon\AppxLayouts\Qobuz.QobuzDesktopVS.Debug_ARM.Simon\fmodexWSA81Larm.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Program Files\WindowsApps\Microsoft.VCLibs.120.00.Debug_12.0.21005.1_arm__8wekyb3d8bbwe\vccorlib120d_app.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Program Files\WindowsApps\Microsoft.VCLibs.120.00.Debug_12.0.21005.1_arm__8wekyb3d8bbwe\msvcp120d_app.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Loaded ‘C:\Program Files\WindowsApps\Microsoft.VCLibs.120.00.Debug_12.0.21005.1_arm__8wekyb3d8bbwe\msvcr120d_app.dll’. Cannot find or open the PDB file.

arm release (wrong vc runtime)
‘Qobuz.exe’ (Win32): Loaded ‘C:\Users\Simon\AppxLayouts\Qobuz.QobuzDesktopVS.Release_ARM.Simon\fmodexWSA81arm.dll’. Cannot find or open the PDB file.
‘Qobuz.exe’ (Win32): Unloaded ‘C:\Users\Simon\AppxLayouts\Qobuz.QobuzDesktopVS.Release_ARM.Simon\Qobuz.Native.Audio.dll’
‘Qobuz.exe’ (Win32): Unloaded ‘C:\Users\Simon\AppxLayouts\Qobuz.QobuzDesktopVS.Release_ARM.Simon\fmodexWSA81arm.dll’
First-chance exception at 0x75268EE7 in Qobuz.exe: Microsoft C++ exception: HRException at memory location 0x046EF160.
-> event log says the attempt to load vccorlib120.dll (wrong runtime) failed.

[/code:35lurc0m]

In a nutshell the following configuration / arch are built with the wrong version of the vc runtime:
x86 logging (fmodexWSA81L.dll), x86 release (fmodexWSA81.dll), arm release (fmodexWSA81arm.dll).

This is a very vicious bug, because on a dev box, as VS 2013 install the desktop vc runtime in system folder, fmod works perfectly, and it only fails on machines without the desktop vc redistribuable package.

Hope to see a fix soon !
Simon

  • You must to post comments
0
0

As a workaround, I tried to deploy desktop vcrt dlls with the app. It works, but unfortunately, it fails the windows app certification kit verification : desktop vcrt links to forbidden win32 api like LoadLibrary and many others.

  • You must to post comments
0
0

Nevermind, it was my vcxproj file that was incorrect and imported windows desktop libs incorrectly :(
My bad !

  • You must to post comments
Showing 2 results
Your Answer

Please first to submit.