سؤال

ووصف 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؟)، لذلك كان هذا وسيلة لضمان <م> المستقبل التوافق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top