متى ولماذا استخدام CoLoadLibrary؟
-
06-07-2019 - |
سؤال
ووصف CoLoadLibrary () انها تفعل نفس الشيء كما LoadLibraryEx () - يقوم بتحميل DLL في العملية. COM خلق وظائف الطبقات - CoCreateInstance () وCoGetClassObject () - على حد سواء تفعل تحميل DLL ضروري في عملية جدا
.وثم لماذا هو CoLoadLibrary () المطلوبة في المقام الأول، وكيف ينبغي أن تستخدم ذلك؟
المحلول
وإلقاء نظرة على رمز:
mov edi,edi
push ebp
mov ebp,esp
push 8
push 0
push dword ptr [ebp+8]
call dword ptr [ole32!_imp__LoadLibraryExW (71eb1214)]
pop ebp
ret 8
وهكذا يدعو فقط:
LoadLibraryEx( FileName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH ).
ومن المفترض أن روتين موجود لمجرد التوافق - وربما له جذوره في WIN16
نصائح أخرى
وربما لو كنت تكتب REGSVR32.EXE الخاصة بك؟ ولكن التفكيك JP لا تدعم حقا تخميني، لأنك يمكن أن مجرد استخدام LoadLibraryEx بدلا من ذلك. ربما في الأيام الخوالي، خططت مايكروسوفت على DLLs COM يوما ما يجري تحميلها بطريقة مختلفة من دلس العادية (D-COM؟)، لذلك كان هذا وسيلة لضمان <م> المستقبل م> التوافق.
لا تنتمي إلى StackOverflow