Нерешенный внешний - PullRequest
       25

Нерешенный внешний

0 голосов
/ 20 ноября 2011

У меня возникают трудности с выяснением моих нерешенных внешних ошибок.

У меня есть 2 разных решения, которые совместно используют основной проект. Решение № 1 называется SnapGame, а решение № 2 называется SnapEditor. Основной проект называется SnapCore.

My 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:\Work\PC\SnapEdit\SnapEdit\Debug\SnapEdit.exe : fatal error LNK1120: 4 unresolved externals

Я не могу понять, почему мое решение SnapGame связывается без проблем, а решение SnapEditor - нет.

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 20 ноября 2011

Если я правильно вас понял, SnapEditor - это управляемое приложение.Он не может просто ссылаться на нативную библиотеку, такую ​​как SnapCore.Используйте P / Invoke или напишите управляемую оболочку .

...