VC / .net exe не запускается на удаленном рабочем столе. (WinMM.dll

#visual-c #.net-3.5

#visual-c #.net-3.5

Вопрос:

У меня есть один проект VC (exe), который зависит от нескольких, .dlls и они .dll разработаны на разных языках и версиях, т.е. — C# .
Создавая проект на платформе .Net Framework версии v1.1.4322, он выполняется как локально, так и с удаленного рабочего стола.
Но когда я использовал .Net Framework версии v2.0.50727 и создал свое приложение, оно работало на моем локальном компьютере, но не выполнялось через удаленный рабочий стол.

Я использовал «Средство обхода зависимостей», чтобы знать, что происходит во время вызова приложения. Это показывает, что после RDPSND.DLL вызова из WINMM.dll начинается отсоединение и отмена регистрации приложения.

Есть ли какой-либо способ выяснить первопричину и устранить проблему? Я прикрепил журнал.

 LoadLibraryW("rdpsnd.dll") called from "WINMM.DLL" at address 0x76B43384.
Loaded "RDPSND.DLL" at address 0x5DAC0000.  Successfully hooked module.
Loaded "WINSTA.DLL" at address 0x76360000.  Successfully hooked module.
LoadLibraryW("rdpsnd.dll") returned 0x5DAC0000.
DllMain(0x76360000, DLL_PROCESS_ATTACH, 0x00000000) in "WINSTA.DLL" called.
DllMain(0x76360000, DLL_PROCESS_ATTACH, 0x00000000) in "WINSTA.DLL" returned 1 (0x1).
DllMain(0x5DAC0000, DLL_PROCESS_ATTACH, 0x00000000) in "RDPSND.DLL" called.
DllMain(0x5DAC0000, DLL_PROCESS_ATTACH, 0x00000000) in "RDPSND.DLL" returned 1 (0x1).
GetProcAddress(0x5DAC0000 [RDPSND.DLL], "DriverProc") called from "WINMM.DLL" at address 0x76B43034 and returned 0x5DAC13AD.
GetProcAddress(0x5DAC0000 [RDPSND.DLL], "wodMessage") called from "WINMM.DLL" at address 0x76B43AFA and returned 0x5DAC142B.
LoadLibraryW("rdpsnd.dll") called from "WINMM.DLL" at address 0x76B43384.
LoadLibraryW("rdpsnd.dll") returned 0x5DAC0000.
GetProcAddress(0x5DAC0000 [RDPSND.DLL], "DriverProc") called from "WINMM.DLL" at address 0x76B43034 and returned 0x5DAC13AD.
GetProcAddress(0x5DAC0000 [RDPSND.DLL], "widMessage") called from "WINMM.DLL" at address 0x76B43AFA and returned 0x5DAC1410.
DllMain(0x71AB0000, DLL_PROCESS_DETACH, 0x00000000) in "WS2_32.DLL" called.
DllMain(0x71AB0000, DLL_PROCESS_DETACH, 0x00000000) in "WS2_32.DLL" returned 1 (0x1).
DllMain(0x71AA0000, DLL_PROCESS_DETACH, 0x00000000) in "WS2HELP.DLL" called.
DllMain(0x71AA0000, DLL_PROCESS_DETACH, 0x00000000) in "WS2HELP.DLL" returned 1 (0x1).
DllMain(0x76C90000, DLL_PROCESS_DETACH, 0x00000000) in "IMAGEHLP.DLL" called.
DllMain(0x76C90000, DLL_PROCESS_DETACH, 0x00000000) in "IMAGEHLP.DLL" returned 1 (0x1).
DllMain(0x10000000, DLL_PROCESS_DETACH, 0x00000000) in "DOCKEXT4DLL_NU.DLL" called.
DllMain(0x10000000, DLL_PROCESS_DETACH, 0x00000000) in "DOCKEXT4DLL_NU.DLL" returned 1 (0x1).
DllMain(0x789E0000, DLL_PROCESS_DETACH, 0x00000000) in "MFC90U.DLL" called.
DllMain(0x789E0000, DLL_PROCESS_DETACH, 0x00000000) in "MFC90U.DLL" returned 1 (0x1).
DllMain(0x77F60000, DLL_PROCESS_DETACH, 0x00000000) in "SHLWAPI.DLL" called.
DllMain(0x77F60000, DLL_PROCESS_DETACH, 0x00000000) in "SHLWAPI.DLL" returned 1 (0x1).
DllMain(0x78520000, DLL_PROCESS_DETACH, 0x00000000) in "MSVCR90.DLL" called.
DllMain(0x78520000, DLL_PROCESS_DETACH, 0x00000000) in "MSVCR90.DLL" returned 1 (0x1).
Unloaded "DBCLIENTUTILITY_NU.DLL" at address 0x04E20000.
Unloaded "NARECDLL_NU.DLL" at address 0x08380000.
Unloaded "MPGPDFDLL_NU.DLL" at address 0x041F0000.
Unloaded "P_OBJS_NEWOBJECTSTREAMER_NU.DLL" at address 
  

Ответ №1:

У меня есть обходной путь для этой проблемы. Эта проблема связана с MSCOREE.dll.

Обратитесь по ссылке: http://connect.microsoft.com/VisualStudio/feedback/details/329819/freelibrary-in-the-winmm-dlls-module-initialization-routine-causes-access-violation

Спасибо, Сурадж