Имам трудности да разбера моите нерешени външни грешки.
Имам 2 различни решения, които и двете споделят основен проект. Решение №1 се нарича SnapGame, а решение № 2 се нарича SnapEditor. Основният проект се нарича SnapCore.
Моето решение SnapGame е приложение за Win32. Той компилира, препраща и свързва проекта SnapCore без проблеми.
Решението SnapEditor е Windows FormsПриложение. Той компилира и споменава проекта SnapCore. Тя обаче няма да се свърже правилно с нея. Получавам нерешени външни грешки всеки път, когато се опитвам да посоча нещо от проекта SnapCore.
Проектът SnapCore има някои класове за поддръжка на GDI +. Всички класове в проекта SnapCore са под пространството на имена SnapCore.
Ето файла Form1.cpp:
#include "stdafx.h"
#include "App.h"
#include "Orient.h"
using namespace SnapCore;
using namespace SnapEdit;
void Form1::Init()
{
SnapCore::Orient orient;
new App();
}
Ето грешките на линкъра, които получавам:
1>Form1.obj : warning LNK4248: unresolved typeref token (01000049) for "Gdiplus.GpCachedBitmap"; image may not run
1>Form1.obj : error LNK2028: unresolved token (0A000019) "public: __clrcall SnapCore::App::App(void)" (??0App@SnapCore@@$$FQAM@XZ) referenced in function "public: void __clrcall SnapEdit::Form1::InitSnapCore(void)" (?InitSnapCore@Form1@SnapEdit@@$$FQ$AAMXXZ)
1>Form1.obj : error LNK2028: unresolved token (0A00001A) "public: __clrcall SnapCore::Orient::Orient(void)" (??0Orient@SnapCore@@$$FQAM@XZ) referenced in function "public: void __clrcall SnapEdit::Form1::InitSnapCore(void)" (?InitSnapCore@Form1@SnapEdit@@$$FQ$AAMXXZ)
1>Form1.obj : error LNK2019: unresolved external symbol "public: __clrcall SnapCore::App::App(void)" (??0App@SnapCore@@$$FQAM@XZ) referenced in function "public: void __clrcall SnapEdit::Form1::InitSnapCore(void)" (?InitSnapCore@Form1@SnapEdit@@$$FQ$AAMXXZ)
1>Form1.obj : error LNK2019: unresolved external symbol "public: __clrcall SnapCore::Orient::Orient(void)" (??0Orient@SnapCore@@$$FQAM@XZ) referenced in function "public: void __clrcall SnapEdit::Form1::InitSnapCore(void)" (?InitSnapCore@Form1@SnapEdit@@$$FQ$AAMXXZ)
1>C:WorkPCSnapEditSnapEditDebugSnapEdit.exe : fatal error LNK1120: 4 unresolved externals
Не мога да разбера защо моето решение за SnapGame се свързва без проблеми, но решението на SnapEditor няма.
Всяка помощ ще бъде оценена.
Отговори:
0 за отговор № 1Ако ви разбирам правилно, SnapEditor е управлявано приложение. Той не може просто да се отнася до родна библиотека, като SnapCore. Използвайте P / Invoke или напишете управлявана обвивка.