كيف يمكنني إصلاح الخطأ المميت C1113: فشل #using على "mylib.lib"

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

  •  23-09-2019
  •  | 
  •  

سؤال

لديّ مشروع يستخدم C ++/CLI لتنفيذ واجهة المستخدم الرسومية وبعض معالجة الخلفية للتحدث إلى مستشعر. لقد حصلت على هذا كل العمل والكثير من الأشياء Comms التي نستخدمها لتوصيل المستشعر الذي يجلس في A.DLL. المشكلة هي أنني أرغب في الجمع بين المكتبة في المنافسة الرئيسية لتجنب الحاجة إلى القلق بشأن توزيع. dlls.

لقد حصلت على مشروع تجريبي يعمل بشكل جيد باستخدام .lib ولكن عندما أحاول تبديل جسم رمز ماني لإنتاج .lib بدلاً من .dll أحصل على الخطأ التالي:

1>------ Build started: Project: MyTool, Configuration: Debug Win32 ------
1>Compiling...
1>stdafx.cpp
1>.\stdafx.cpp : fatal error C1113: #using failed on 'c:\projects\MyTool\debug\MyLib.lib'

قليلا من غوغلينغ يقترح أن يحدث هذا عندما لا يتم تطبيق مفتاح MSIL ، لكنه بالتأكيد موجود في مشروع المكتبة.

لديّ مزيج من الكود المدارة وغير المُدار في كل من مشروعي التجريبي والشيء الحقيقي ، لذا فأنا أعاني حقًا من معرفة ما هي المشكلة هنا.

سيتم تلقي أي اقتراحات بامتنان للغاية!

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

المحلول

أنا أظن قليلاً ، لكنني أظن أن مشروع "MyTool" لديه مشروع "Mylib" كواحد من "المراجع" ("قائمة" >> خصائص >> خصائص شائعة >> المراجع).

عندما تقوم بتغيير نوع مشروع MyLib إلى LIB بدلاً من DLL ، تحتاج إلى إزالة "Mylib" من مراجع المشروع. تقوم بعد ذلك بتحديث تبعيات المشروع من الحل (قائمة "Project" >> "تبعيات المشروع ...") بحيث يعتمد MyTool على MyLib.

نصائح أخرى

وركضت أيضا في هذا. والسبب في فشله هو أنني كنت أقوم بتجميع DLL (C ++ DLL المدير الخاص بي/DLL الخاص بي إلى Target .NET 4.0. وكان DLL الذي كنت #using هو .NET 2.0 DLL. على هذا النحو ، كان فشل ، على الرغم من أن المسارات وأسماء الملفات تصطف بشكل مثالي. في هذه الحالة ، كانت رسالة الخطأ على الإطلاق لا توجد مساعدة على الإطلاق. أنا حلها عن طريق تحديث DLL المستقل إلى .NET 4.0. بحيث كانت كلا التجميعين تستخدم نفس إطار .NET.

إذا كنت تربط بوضع مختلط (مُدار/أصلي) ، فقد تحصل على هذا الخطأ. وهو ما لا ينبغي عليك إذا كان المشروع يستخدم CLR حتى إذا لم يكن أحد الملفات المصدر. ولكن على أي حال ، إذا كان هذا هو الحال ، فحاول إزالة المرجع من Project | Properties | خصائص شائعة | المراجع ثم إعادة إضافتها.

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