/ / Нерешени външни - c ++, пространства с имена, неразрешени външни, множество проекти

Неразрешени външни - c ++, namespaces, неразрешени външни, множество проекти

Имам трудности да разбера моите нерешени външни грешки.

Имам 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 или напишете управлявана обвивка.