التغييرات في DLL المؤجلة تحميل وظيفة مساعد منذ Visual C + + 6.0

إذا كان لديك إصدارات متعددة من Visual C + + تشغيل جهاز الكمبيوتر الخاص بك أو إذا قمت بتعريفه دالة المساعد الخاص بك، التي قد تتأثر بالتغييرات التي تم إجراؤها إلى DLL في تأخير تحميل وظيفة المساعد. فعلى سبيل المثال:

  • __delayLoadHelper الآن هو __delayLoadHelper2

  • __pfnDliNotifyHook الآن هو __pfnDliNotifyHook2

  • __pfnDliFailureHook الآن هو __pfnDliFailureHook2

  • __FUnloadDelayLoadedDLL الآن هو __FUnloadDelayLoadedDLL2

ملاحظة

إذا كنت تستخدم الافتراضي دالة المساعد، ستؤثر هذه التغييرات لا تقوم. عدم وجود تغييرات فيما يتعلق بكيف تقوم باستدعاء من الرابط.

إصدارات متعددة من Visual C + +

إذا كان لديك إصدارات متعددة من Visual C + + تشغيل الكمبيوتر الخاص بك، تأكد من تطابق الرابط delayimp.lib. إذا كان هناك هو mهوmatch، سوف تحصل على خطأ الرابط الإعلام عن أي ___delayLoadHelper2@8أو ___delayLoadHelper@8كعنصر التي لم يتم حلها خارجي الرمز. السابقة وجود الرابط جديد مع delayimp.lib قديمة، و الرابط قديم delayimp.lib جديد يتضمن الثانية.

إذا تلقيت خطأ الرابط التي لم يتم حلها، قم بتشغيل dumpbin/linkermember : 1 في delayimp.lib التي تتوقع أن يحتوي تشغيل دالة المساعد لمعرفة أي وظيفة مساعد هو المعرفة بدلاً من ذلك. قد يتم تعريف دالة المساعد أيضا في ملف كائن؛ تعمل dumpbin/رموز و بحث عن delayLoadHelper(2).

إذا كنت تعلم أن لديك الرابط Visual Basic 6.0 C + +، ثم:

  • قم بتشغيل dumpbin ملف المساعد تأخير تحميل.lib أو.obj إلى تحديد ما إذا كان ذلك بتعريف __delayLoadHelper2 . وإلا، ستفشل عملية الارتباط.

  • قم بتعريف __delayLoadHelper في ملف.lib أو.obj المساعد تأخير تحميل.

دالة معرّفة بواسطة مستخدم لمساعد

إذا قمت بتعريف دالة المساعد الخاص بك و يتم استخدام الإصدار الحالى من Visual C + +، قم بما يلي:

  • إعادة تسمية دالة المساعد إلى __delayLoadHelper2 .

  • منذ المؤشرات في تأخير (ImgتأخيرDescr في تأخير imp.h) لواصف تغيرت من عناوين المطلق (VAs) إلى عناوين النسبية (RVAs) لكي تعمل كما هو متوقع في كلا البرنامجين 32 و 64 بت، تحتاج إلى تحويل هذه الخلفية للمؤشرات. لقد تم تقديم دالة جديدة: PFromRva، في delayhlp.cpp. يمكنك استخدم النسخ الاحتياطي هذه دالة تشغيل كل من حقول الموجودة في واصف لتحويلها إلى أي مؤشرات 32 أو 64 بت. يستمر دالة المساعد تحميل تأخير الافتراضية إلى يكون قالب جيد إلى تستخدم كمثال.

تم تحميله الجميع عمليات الاستيراد لملف DLL المحملة بتأخير

تم تحميله الرابط استيراد الجميع من مكتبة الارتباط ديناميكي الذي قمت بتحديده إلى يمكن تأخير تم تحميله. راجع تم تحميله عمليات الاستيراد الكل لمكتبة ارتباط حيوي تأخير-تم تحميله للحصول على مزيد من المعلومات.

راجع أيضًا:

المرجع

التعرف وظيفة مساعد