Интегрировать классы проекта C32 Win32 Console в проект Visual C++ (приложение для форм Windows) в Visual Studio 2008

Я написал несколько классов, внутреннюю часть проекта на C++ (проект win32), а затем хотел добавить к нему графический интерфейс. Visual C++ казался хорошим решением, но после выполнения части графического интерфейса я не смог интегрировать простой код C++. У кого-нибудь есть опыт с этим? Я получаю ошибку "неразрешенные внешние". По-видимому.cpp файлы не связаны на последнем шаге. Я думаю, что некоторые параметры проекта также должны быть изменены, кто-то может объяснить, что именно?

Я также думал о том, чтобы скомпилировать классы в.dll и импортировать их в визуальный проект C++, возможно ли это как-то или эти два проекта могут быть скомпилированы вместе?

Спасибо за помощь, я уже давно играю с ней, но не могу найти никакого рабочего решения.

Zoltan

4 ответа

Как вы импортируете эти старые классы в ваш проект C++ GUI? Как библиотека или просто как исходные файлы?

Если вы просто исходные файлы, вы можете просто добавить файлы в ваш проект и скомпилировать их вместе с новыми файлами.

"Проект A" должен импортировать заголовки "Проекта B", а также должен быть связан с "Проектом B".

Если ваш внутренний код интегрирован как отдельный проект, создающий библиотеку, вам необходимо добавить зависимость от этого проекта в ваше приложение с графическим интерфейсом.

Если вы не интегрировали проект в свое решение с графическим интерфейсом, вам нужно установить каталоги include, добавить библиотеку lib в linker->input, а также сообщить VS, как найти его, установив дополнительный каталог библиотеки в опциях компоновщика.

Учитывая, что не достаточно деталей, чтобы по-настоящему понять, что происходит, у меня много возможностей.

  • Код для вашей серверной части не компилируется (файлы cpp для проекта не являются частью проекта GUI или связанных зависимостей), если вы не связываете серверную часть отдельно.
  • Библиотека для вашего бэкэнд-проекта не связана с; проверьте раздел ссылок свойств проекта. В случае, если вы ссылаетесь отдельно.
  • Бэкенд и фронтенд библиотеки были скомпилированы с разными настройками, и во время соединения это вызывает проблемы. Например, отладка и выпуск стандартных библиотек, многопоточных или однопоточных библиотек; также различные определения строк могут вызвать проблемы, если они не совпадают (особенно, если вы использовали код шаблона).

Вполне возможно построить dll с бэкэнд-частью, если хотите. Если это не будет использоваться чем-то еще, я бы, вероятно, не стал бы беспокоиться и просто связывать статически, но вы, конечно, можете.

Другие вопросы по тегам