سؤال

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

Bascally لدي نظام تشغيل المشروع أنني وأضاف accessor طريقة.أنا جمعت هذا المشروع .الملف lib (برمجيا و الروابط الجميلة).

ثم يكون مشروعي الخاص الذي يستخدم هذا lib.لقد شملت المكتبة في إطار المشروع->خصائص -> رابط -> الإدخال و تعيين الدليل المناسب في العامة -> إضافية Lib الدلائل.لقد شملت رأس في الملف المناسب و أنا ببساطة استدعاء منشئ واحدة من الطبقات...ولا حتى استدعاء الأسلوب التي تم إنشاؤها حتى الآن.

رمز يجمع ما يلي الجبل من الأخطاء رابط الغالب LNK2019 و LNK2001 الأخطاء.لقد حاولت ترجمة تحت إعدادات مختلفة (ليب ، exe ، الخ) ، و رابط الأخطاء فقط يبدو أن تتضاعف.عند التبديل مرة أخرى إلى الإعدادات السابقة ، عدد الأخطاء لا تزال في ذروتها.أي أفكار عن كيفية إصلاح هذا ؟

بناء سجل

بناء بدأت:المشروع:SpamCapture التكوين:التصحيح|Win32

أسطر الأوامر:

إنشاء ملف مؤقت "c:\SpamCapture\SpamCapture\SpamCapture\Debug SP0000103081740.rsp" مع محتويات [ /VERBOSE:LIB /الخروج:"C:\SpamCapture\SpamCapture\SpamCapture\Debug\SpamCapture.exe" /تدريجي /LIBPATH:"C:\SpamCapture\Config\Debug\" /MANIFEST /MANIFESTFILE:"Debug\SpamCapture.exe.وسيطة.يعبر" /NODEFAULTLIB:"libcmtd.lib" /NODEFAULTLIB:"nafxcwd.lib" /DEBUG /PDB:"c:\SpamCapture\SpamCapture\SpamCapture\Debug\SpamCapture.pdb" /الفرعي:وحدة التحكم /آلة:X86 KeyCapture_Config.ليب kernel32.ليب user32.ليب gdi32.ليب winspool.ليب comdlg32.ليب advapi32.ليب shell32.ليب ole32.ليب oleaut32.ليب uuid.ليب odbc32.ليب odbccp32.ليب

".\Debug\التفاعل.الكائنات"

".\Debug\InteractionSet.الكائنات"

".\Debug\LogReader.الكائنات"

".\Debug\SpamCapture.الكائنات"

".\Debug\stdafx.الكائنات"

".\Debug\SpamCapture.res"

".\Debug\SpamCapture.exe.تضمين.تظهر.res" ] إنشاء سطر الأوامر "link.exe @c:\SpamCapture\SpamCapture\SpamCapture\Debug SP0000103081740.rsp /NOLOGO /ERRORREPORT:موجه"

نافذة الإخراج:

ربط...الرابط :تحذير LNK4067:غامضة دخول النقطة ؛ اختيار 'mainCRTStartup' البحث عن المكتبات البحث C:\SpamCapture\Config\Debug\KeyCapture_Config.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\user32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\gdi32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\winspool.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comdlg32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\advapi32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shell32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ole32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\oleaut32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\odbc32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\odbccp32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\msvcprtd.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\MSVCRTD.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\mfc80ud.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\mfcs80ud.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\msimg32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comctl32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shlwapi.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\atlsd.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\wininet.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ws2_32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\mswsock.lib:البحث C:\SpamCapture\Config\Debug\KeyCapture_Config.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\user32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\gdi32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\winspool.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comdlg32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\advapi32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shell32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ole32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\oleaut32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\odbc32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\odbccp32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\msvcprtd.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\MSVCRTD.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\OLDNAMES.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\mfc80ud.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\mfcs80ud.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\msimg32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comctl32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shlwapi.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\lib\atlsd.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\wininet.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ws2_32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\mswsock.lib:البحث C:\SpamCapture\Config\Debug\KeyCapture_Config.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\kernel32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\user32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\gdi32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\winspool.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\comdlg32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\advapi32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\shell32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\ole32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\oleaut32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\uuid.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\odbc32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib\odbccp32.lib:البحث C:\Program Files\Microsoft Visual Studio 8\VC\lib\msvcprtd.lib:الانتهاء من البحث في المكتبات

رابط الأخطاء تبدأ من هنا:

KeyCapture_Config.ليب(KeyCapture_ConfigDlg.الكائنات) :خطأ LNK2001:حل الخارجية رمز "العامة:الظاهري int __thiscall CWnd::إنشاء(const char *,const char *غير موقعة طويلة ، البنية tagRECT const &الدرجة CWnd *غير موقعة الباحث ، البنية CCreateContext *)" (?إنشاء@CWnd@@UAEHPBD0KABUtagRECT@@PAV1@IPAUCCreateContext@@@Z)

...المزيد مثل هذا

KeyCapture_Config.ليب(KeyCapture_ConfigDlg.الكائنات) :خطأ LNK2019:حل الخارجية رمز "العامة:البنية HICON__ * thiscall CWinApp::LoadIconA(unsigned int)const" (?LoadIconA@CWinApp@@QBEPAUHICON@@I@Z) المشار إليها في الوظيفة العامة":__thiscall CKeyCapture_ConfigDlg::CKeyCapture_ConfigDlg(فئة CWnd *)" (??0CKeyCapture_ConfigDlg@@QAE@PAVCWnd@@@Z)

...المزيد من هذا القبيل

(?DoDataExchange@SetupDialog@@MAEXPAVCDataExchange@@@Z) C:\SpamCapture\SpamCapture\SpamCapture\Debug\SpamCapture.exe :خطأ فادح LNK1120:34 externals لم يتم حلها

النتائج:

بناء سجل تم حفظها في "file://c:\SpamCapture\SpamCapture\SpamCapture\Debug\BuildLog.htm" SpamCapture - 44 خطأ(s), 1 warning(s)

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

المحلول

المكتبة KeyCapture_Config.lib يستخدم MFC واجهة المستخدم الرسومية الطبقات (CWnd, CWinApp, إلخ), ولكن التطبيق أنت ربط في تطبيق وحدة تحكم (انظر /SUBSYSTEM:CONSOLE الخيار في رابط سطر الأوامر).هذا لن يعمل.يجب إنشاء MFC جديد واجهة المستخدم الرسومية تطبيق المشروع إضافة المكتبة أن هذا المشروع.

تحرير:لقد تم فحص الرابط في التعليق الخاص بك: http://dynamicnetservices.com/~سوف/الأكاديمية/textinput/keycapture/ ويبدو أن KeyCapture_Config هو في الواقع الحوار MFC التطبيق الذي يستخدم KeyCapture DLL.قد يكون من الممكن استخدام KeyCapture في تطبيق وحدة تحكم من خلال ربط مباشرة ضد KeyCapture.lib.

نصائح أخرى

الرابط خطأ يبدو أن تشكو من عدم وجود الكثير من MFC الوظائف يمكنك ربط خطوط تشمل:/NODEFAULTLIB:"nafxcwd.lib" الذي من شأنه أن يستبعد MFC.هو lib أنت ربط ضد بنيت مع MFC ؟

أشياء أخرى للتحقق من أن يتم ترجمة التطبيق ليب مع نفس الأحرف تعيين (ie.كل multibyte أو كليهما unicode).

عندما كنت بناء lib لا يوجد رابط خطوة ، حتى التعسفي مجموعة من الكائنات يمكن أن تكون ألقيت في ليب دون أي اعتبار آخر ما قد تحتاج.

يبدو أن المشروع هو ربط مع التصحيح مؤشرات التشغيل.هل هذه هي النية ؟ إذا كان الأمر كذلك قد يكون هناك تعارض مع KeyCapture_Config مكتبة يبدو أنك تستخدم.

هو KeyCapture_Config 3rd الطرف المكتبة ؟ إذا كان الأمر كذلك هل بناء من المصدر أو كان lib/dll المقدمة لك ؟

قد يستغرق بعض التحقيق الذي C/C++ أوقات التشغيل التي يجري بناؤها ضد.يمكنك الرجوع إلى Microsoft KB المادة التي قد تسلط بعض الضوء على إمكانية التشغيل بناء التناقضات.

أعتقد أن روب ووكر قد مسمر المشكلة.إذا كانت وثائق KeyCapture_Config.ليب يقول لا صلة MFC ، والتحقق من مصدر التوجيهات التي تتطلب الربط إلى MFC.شيء من هذا القبيل:

#pragma comment(lib, "nafxcwd.lib")

من شأنه أن يسبب الاعتماد على MFC ، KeyCapture_Config.ليب الطبيب قد يكون قديما.

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