VC ++ /. Net exe не работает на удаленном рабочем столе.(WinMM.dll & rdpsnd.dll вызывает проблему) - PullRequest
0 голосов
/ 08 апреля 2011

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

Я использовал "Dependency Walker" , чтобы знать, что происходит во время вызова приложения.Он показывает, что после 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 Ответ

0 голосов
/ 13 апреля 2011

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

Ссылка: http://connect.microsoft.com/VisualStudio/feedback/details/329819/freelibrary-in-the-winmm-dlls-module-initialization-routine-causes-access-violation

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

...