#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
Спасибо, Сурадж