لماذا تفشل طلب خدمة نسخ نسخ الظل الخاص بي: لا يمكن العثور على CreateVsSbackupComponenterInlernal

StackOverflow https://stackoverflow.com/questions/789754

  •  16-09-2019
  •  | 
  •  

سؤال

لقد قمت بتنفيذ طالب VSS، وينفذ تجميع وتجميعها على Windows Server 2008، ولكنها لا تنفذ على Windows Server 2003. نظرا لأن طلبي داخل DLL، لن يتم تحميل DLL الخاص بي. باستخدام الاعتماد ووكر, ، اكتشفت أن DLL الخاص بي هو العثور على vssapi.dll على ما يرام، لكن تقارير:

Error: At least one required implicit or forwarded dependency was not found.

تبحث في بلدي vssapi.dll، لا يمكن العثور عليها CreateVssBackupComponentsInternal, ، في حين أن vssapi.dll تصدر شيئا مختلفا تماما: ?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z.

هل كانت مفيدة؟

المحلول

يجب تجميع VSS واستهدافها خصيصا لكل منصة ونظام تشغيل، بما في ذلك نظام التشغيل Windows XP و Windows Server 2003 و Vista / Windows Server 2008.

أول مايكروسوفت SDK لدعم مقدم الطلبات VSS بالكامل هو V6.1، وهذا يدعم فقط مقدم الطلبات التي تعمل على نظام التشغيل Vista. إذا كنت ترغب في تشغيل Windows Server 2003 أو XP:

  • تحميل VSS SDK 7.2..
  • قم بتعيين مساراتك المدرة والمكتبة للبحث في الدليل المناسب في SDK VSS.

ما يلي هو ما يفعله Alphavss في config.h., ، ولكن عينة vshadow في VSS SDK لا: إنه يحدد فقط مسارات التضمين والمكتبة. أود أن أقترح أن النجاح متابعة vshadow. ولكن من أجل الاكتمال:

إذا استهداف نظام التشغيل Windows XP:

#define NTDDI_VERSION NTDDI_WINXPSP2
#define _WIN32_WINNT _WIN32_WINNT_WINXP
#define WINVER _WIN32_WINNT

إذا استهدفت Windows Server 2003:

#define NTDDI_VERSION NTDDI_WS03SP1
#define _WIN32_WINNT _WIN32_WINNT_WS03
#define WINVER 0x501

إذا استهدفت Vista، فلا تشير إلى VSS SDK. بدلا من ذلك مرجع Windows 6.1 SDK و:

#define NTDDI_VERSION NTDDI_WS08
#define _WIN32_WINNT _WIN32_WINNT_WS08
#define WINVER _WIN32_WINNT

لا أستطيع أن أستأخذ كل الائتمان لذلك، أحسبت هذا من خلال قراءة قانون المصدر للمشروع يسمى Alphavss. (يرى إعلان)، مما يعرض مقابل كود .NET. لم يبدو أن MSDN مفيدة للغاية. ومع ذلك، و vshadow. توفر الأداة والعينة مثالا على كيفية ترجمة طالب VSS.

لاحظ أيضا أنه يجب إعادة ترجمة مرة أخرى إلى x64 أو ia64 vs x86. وهذا يعني من أجل دعم جميع المنصات، ستحتاج إلى 9 إصدارات مجمعة من قابلة للتنفيذ.

نصائح أخرى

أردت فقط أن أضيف أن Alphavss يضع أيضا المسارات، وليس فقط يحدد. هذه ضرورية في كلتا الحالتين.

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