تعذر العثور على الوحدة النمطية المحددة - 64 بت DLL

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

  •  09-09-2019
  •  | 
  •  

سؤال

كان لدي DLL 32 بت مكتوب باستخدام أصلي C، عندما حاولت تجميع مع VC ++ (VS2008) لتحويل DLL إلى X64 عن طريق تغيير النظام الأساسي الذي تم تجميعه. ولكن عندما حاولت الوصول إلى DLL من تطبيقي C # الذي هو أيضا منصة "X64" فشل في تحميل DLL. لقد استخدمت Dllimport لربط DLL مع طلبي.

نظام التشغيل الذي أستخدمه في نظام التشغيل Vista، لكنني لم أستطع استدعاء وظيفة DLL من طلبي، فقد فشل تحميل DLL.

هل هناك أي طريقة لحل هذه المشكلة.

نتطلع من مساعدتكم.

التحيات، GA.

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

المحلول

جرب أداة "وحدة الاستبعاد" (أداة تشبه LDD للفوز، www.dependencywalker.com) لمعرفة الروابط ضد ما. قد يكون مفيدا.

نصائح أخرى

أعتقد أن تخميني سيكون تبعا، قد يكون لدى DLL الجديد الخاص بك بعض DLL 64 بت مفقود يحتاجه.

تحقق من أين تقوم ببناء الإصدارات المختلفة (x86 / x64) من DLL ل.

يتم تعيين أسهل شيء للقيام به هو الدليل المستهدف ل DLL 64 بت لتكون دليل فرعي "X64" لمجلد الهدف الخاص بك. في تكوين الحلول 64 بت، قم بتعيين الدليل المستهدف C # لتكون أيضا دليل "x64".

سيضمن هذا EXE لكل منصة تحاول تحميل DLL الصحيح.

شكرا لمساعدتك.

عندما وضعت DLL ضمن C: Windows System32 الخطأ الذي حل.

شكرا، ga.

كان لدي مشكلة في هذا مرة واحدة على طول هذه الخطوط. كان لدي DLL C ++ التي تصرفت كواجهة إلى قطعة من الأجهزة، والتي كنت بحاجة إلى الاتصال من C #. ومع ذلك، ستفشل في دعوة Dllimport إذا لم يتم توصيل قطعة الأجهزة. DLL هو.

تحقق من عدم التسبب في نوع من الخطأ عند إعداد DLL في رمز C الخاص بك.

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