ظهور رسالة خطأ "يتعذر على النظام العثور على الملف المحدد" عند تسجيل ملقم ATL باسم طويل

هام: تمت ترجمة هذه المقالة باستخدام برامج مايكروسوفت للترجمة الآلية ومن المحتمل ان يتم تحريرها او تدقيقها بعد ذلك من خلال تكنولوجيا منصة مجموعات الترجمة(CTF) او من خلال مترجم بشري. تقدم لك شركة مايكروسوفت هذه المقالات المترجمة بشكل آلي او بالترجمة البشرية او بعد تحريرها وتدقيقها من قبل مجموعات الترجمة حتى تمكنكم من الوصول إلى جميع المقالات الموجودة في قواعد المعرفة لديها بلغات مختلفة. إلا أن المقالات المترجمة قد تحتوي على أخطاء في المفردات او بناء الجمل او النحو. وعليه، فإن شركة مايكروسوفت ليست مسؤولة عن اية أخطاء او عدم دقة في الترجمة او أية أضرار قد تحدث نتيجة أخطاء في ترجمة محتويات النص او استخدامه من قبل العملاء.

اضغط هنا لرابط المقالة باللغة الانجليزية201318
الأعراض
تسجيل ملقم ATL له اسم ملف طويل أو أحد الموجود في دليل باسم مسار طويل أو بإرجاع خطأ 0x80070002:
يتعذر على النظام العثور على الملف المحدد.
ل Dll، يتم إرجاع هذا الخطأ عن طريق Regsvr32.exe. ل EXEs، استدعاء Module::RegisterServer (CComModule::RegisterServer) في _tWinMain() بإرجاع هذا الخطأ.
السبب
رمز التسجيل ATL ليستخدم GetShortPathName() لاسترداد الاسم المختصر للملف ويستخدم الاسم المختصر للتسجيل. فشل GetShortPathName() إذا كان الملف لا يحتوي على اسم ملف قصير. السلوك الافتراضي في Windows 98 ونظام التشغيل Windows 95 أو Windows NT تلقائياً بإنشاء أسماء الملفات القصيرة (تنسيق 8.3) لملفات ذات أسماء طويلة. يمكنك إيقاف تشغيل هذا الخيار باستخدام "محرر نهج النظام" (Poledit.exe). بعض أنظمة الملفات لا تدعم أيضا إنشاء أسماء قصيرة بشكل افتراضي. حاول استخدام اسم ملف غير صالح ترجعها GetShortPathName() في استدعاء loadlibraryex () ATL، وفشل مع 0x80070002.
الحل
عندما يتم استدعاء GetShortPathName() في مصدر ATL، إضافة التعليمات البرمجية للتحقق من عدم نجاح. يجب أن يتم تعديل المهام التالية:
  • CComModule::UpdateRegistryFromResourceS(UINT...)-أتلباسي. (ح)، البند 4933.
  • CComModule::UpdateRegistryFromResourceS(LPCTSTR...)-أتلباسي. (ح)، البند 4965.
  • AtlModuleUpdateRegistryFromResourceD()-أتلباسي. (ح)، line5896.
تغيير من الأسطر التالية:
// Convert to short path to work around bug in Windows NT 4.0's CreateProcess.TCHAR szModuleShort[_MAX_PATH];GetShortPathName(szModule, szModuleShort, _MAX_PATH);LPOLESTR pszModule = T2OLE(szModuleShort);				
بما يلي:
// Convert to short path to work around bug in Windows NT 4.0's CreateProcess.TCHAR szModuleShort[_MAX_PATH];int cbShortName = GetShortPathName(szModule, szModuleShort, _MAX_PATH);LPOLESTR pszModule;if (cbShortName == _MAX_PATH)    return E_OUTOFMEMORY;pszModule = (cbShortName == 0||cbShortName == ERROR_INVALID_PARAMETER) \  ? T2OLE(szModule) : T2OLE(szModuleShort);				
في CComModule::RegisterClassHelper (أتلباسي. H، خط 5044)، تغيير من الأسطر التالية:
// Convert to short path to work around bug in Windows NT 4.0's CreateProcess.TCHAR szModuleShort[_MAX_PATH];GetShortPathName(szModule, szModuleShort, _MAX_PATH);key.SetKeyValue(szLS32, szModuleShort);				
بما يلي:
// Convert to short path to work around bug in Windows NT 4.0's CreateProcess.TCHAR szModuleShort[_MAX_PATH];int cbShortName = GetShortPathName(szModule, szModuleShort, _MAX_PATH);if (cbShortName == _MAX_PATH)    return E_OUTOFMEMORY;if (cbShortName == 0 || cbShortName == ERROR_INVALID_PARAMETER)    key.SetKeyValue(szLS32, szModule);else    key.SetKeyValue(szLS32, szModuleShort);				
هذه التغييرات قد أية نتيجة في حالة بناء ل ReleaseMinSize، لأنه يتم استخدام التعليمات البرمجية في ATL.dll بدلاً من ذلك.
تصريح
أقرت Microsoft أن هذا هو الشوائب في منتجات Microsoft المسردة في بداية هذه المقالة. تم تصحيح هذه الأخطاء في Visual Studio 6.0 Service Pack 3.
لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":
194295 HOWTO: أقول أنه قد تم تثبيت حزم الخدمة Visual Studio 6.0
لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":
194022 INFO: حزم الخدمة Visual Studio 6.0، ما، حيث، لماذا

معلومات أخرى
تسجيل ATL الملقمات باستخدام اسم ملف قصير للتغلب على الأخطاء في دالة CreateProcess() Windows NT.

لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":
179690 تصحيح: 0x80080005 إرجاع تشغيل خادم COM باستخدام اسم ملف طويل
لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":
173673 ملقم Windows NT أدوات لمحطة عمل Windows NT 4.0 المتوفرة

مراجع
لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":
179690 خطأ: فشل TCProps.dll في التسجيل أثناء الإعداد
80070002

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 201318 - آخر مراجعة: 07/03/2016 06:25:00 - المراجعة: 4.0

Microsoft ActiveX Template Library 3.0

  • kbbug kbFAQ kbfix kbregistry kbvs600sp3fix kbmt KB201318 KbMtar
تعليقات