Форум программистов, компьютерный форум CyberForum.ru

Создать проект с использованием существующего исходного кода - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
compilator
 Аватар для compilator
2 / 2 / 0
Регистрация: 06.02.2010
Сообщений: 33
15.09.2011, 11:57     Создать проект с использованием существующего исходного кода #1
Здравствуйте, уважаемые форумчане! Помогите пожалуйста с таким вопросом: есть готовые .cpp и .h файлы, в которых я инклюжу другие исходники (находятся во внешних папках), хочу создать проект из этих файлов. Создаю пустой Win32 Project, добавляю туда упомянутые файлы. При попытке скомпилировать выдаёт ошибку - Unresolved external symbol. В просмотрщике структуры классов - Class view - среда видит только те классы, которые объявлены в исходниках, лежащих в папке проекта, но не видит - объявленные в подключаемых из внешней папки. Я сделал вывод, что не компилируется именно потому, что не видит внешние классы, т.к. unresolved external symbol относится именно ко внешним методам. Речь идёт о 2008 и 2010 студиях, и там и там все пути правильно прописаны и проверены неоднократно. Подскажите как это лечится.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2011, 11:57     Создать проект с использованием существующего исходного кода
Посмотрите здесь:

C++ Результат программы — вывод исходного кода
Создать новый файл, удалив заданную последовательность символов из существующего. C++
Вопрос по обработке исходного кода интернет-страницы. C++
нет исходного кода C++
Создать отсутствующий файл и записать в него начальный и конечный элементы существующего файла C++
Востановления исходного кода из файла o C++
C++ Выполнение исходного кода в Visual Studio
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
15.09.2011, 12:01     Создать проект с использованием существующего исходного кода #2
Цитата Сообщение от compilator Посмотреть сообщение
в которых я инклюжу другие исходники (находятся во внешних папках)
- есть уверенность в том что для данного проекта путь к внешним файлам сохранился

Я к тому что вот такая запись для папки project1 уже не будет тождественной для папки project2
C++
1
#include "additiondir\\someheader.h"
Для разбора лучше всего привести часть кода с подключением а также указать реальное рассположение файлов и папок
compilator
 Аватар для compilator
2 / 2 / 0
Регистрация: 06.02.2010
Сообщений: 33
15.09.2011, 15:26  [ТС]     Создать проект с использованием существующего исходного кода #3
Привожу код, находящийся в файле w:\C++ Projects\Colored Cube\Init Direct3D.cpp :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "d3dApp.h" // вот этот файл содержит класс  D3DApp и находится в w:\C++ Projects\Common
#include "Cube.h"
 
class CubeApp : public D3DApp
{
public:
    CubeApp(HINSTANCE hInstance);
    ~CubeApp();
 
    virtual void initApp();
    virtual void onResize();
    virtual void updateScene(float dt);
    virtual void drawScene();
 
    virtual LRESULT msgProc(UINT msg, WPARAM wParam, LPARAM lParam);
 
 
private:
 
    void buildFX();
    void buildVertexLayouts();
 
private:
 
 ID3D10Effect* pFX;
 ID3D10EffectMatrixVariable* pfxmWVP;
 ID3D10EffectTechnique* pfxTech;
 ID3D10InputLayout* pInpLayout;
 
 D3DXMATRIX mView, mProj, mWVP;
 
 float theta, phi;
 
 Cube cube;
 
};
В просмотрщике Class view класс D3DApp не виден, хотя путь к d3dApp.h прописан VC++ Directories.
Миниатюры
Создать проект с использованием существующего исходного кода  
compilator
 Аватар для compilator
2 / 2 / 0
Регистрация: 06.02.2010
Сообщений: 33
15.09.2011, 15:28  [ТС]     Создать проект с использованием существующего исходного кода #4
Самое интересное это то, что даже когда я добавляю внешние файлы в папку проекта, всё равно пишет unresolved external symbol.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
15.09.2011, 16:14     Создать проект с использованием существующего исходного кода #5
надо не только добавлять файлы в проект, но также либо класть их в папку проекта дополнительно, либо указывать путь в project -> properties -> c++ -> general -> additional include directories
-=ЮрА=-
Заблокирован
Автор FAQ
15.09.2011, 16:39     Создать проект с использованием существующего исходного кода #6
Цитата Сообщение от compilator Посмотреть сообщение
Самое интересное это то, что даже когда я добавляю внешние файлы в папку проекта, всё равно пишет unresolved external symbol.
-

Цитата Сообщение от compilator Посмотреть сообщение
В просмотрщике Class view класс D3DApp не виден, хотя путь к d3dApp.h прописан VC++ Directories
- предупреждения говорят что нет прототипа функций, d3dApp.срр или же
C++
1
#pragma comment(lib,d3dApp.lib)
подключил???Они точно в папке проекта???
compilator
 Аватар для compilator
2 / 2 / 0
Регистрация: 06.02.2010
Сообщений: 33
15.09.2011, 18:22  [ТС]     Создать проект с использованием существующего исходного кода #7
Файлы точно в папке, #pragma comment(lib, d3dApp.lib) - такой библиотеки нет (без неё должно работать) - результат тот же. В общем, я изначально думал что рационального объяснения этому нет, но были сомнения относительно правильности своих действий. Тут я так понял уже всё должно работать, но не работает.
-=ЮрА=-
Заблокирован
Автор FAQ
15.09.2011, 22:17     Создать проект с использованием существующего исходного кода #8
Цитата Сообщение от compilator Посмотреть сообщение
Тут я так понял уже всё должно работать, но не работает.
- 10ка вообще тяжолый инструмент, желание разработчиков привести квсё к стандарту отразилось на кодах предыдущих версий - ошибками являются казалось совсем безобидные вещи, честно скажу без проекта сложно дельно помочь(
compilator
 Аватар для compilator
2 / 2 / 0
Регистрация: 06.02.2010
Сообщений: 33
15.09.2011, 23:13  [ТС]     Создать проект с использованием существующего исходного кода #9
Проект полностью рабочий, т.к. исходники я беру из готового примера, который сам по себе запускался, проблема в самой системе подключения. Выкладываю исходный рабочий проект, нерабочий вариант и папку с внешними исходниками (все под VS 2008), хотя очень не хотелось кого-то отвлекать. Благодарю за помощь.
Вложения
Тип файла: rar Проекты.rar (6.69 Мб, 28 просмотров)
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
16.09.2011, 04:12     Создать проект с использованием существующего исходного кода #10
попробуй проект во вложении... только не забудь все cpp-шники скомпилить тоже.
я не могу проверить , у меня direct SDK Не установлен.
Вложения
Тип файла: rar Cubus vulgarus 111.rar (2.50 Мб, 14 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
16.09.2011, 08:02     Создать проект с использованием существующего исходного кода #11
compilator, беру в работу позже сюда отпишу...
compilator
 Аватар для compilator
2 / 2 / 0
Регистрация: 06.02.2010
Сообщений: 33
16.09.2011, 14:52  [ТС]     Создать проект с использованием существующего исходного кода #12
Юра, ещё раз спасибо, буду ждать.


OstapBender, спасибо! Ошибок стало меньше - не 13, а 8, но к сожалению тоже не компилируется. И всё та же проблема с unresolved external symbols. Теперь в просмотрщике структуры классов появились классы D3DApp и GameTimer. А что ты изменил, что считал причиной неполадок?
-=ЮрА=-
Заблокирован
Автор FAQ
16.09.2011, 17:11     Создать проект с использованием существующего исходного кода #13
compilator, вот что я предлагаю сделать(см рисунок) + у меня не установлена SDK и компилятор ругается на #include <d3dx10.h>, если он имеется думаю проблемм решены
Миниатюры
Создать проект с использованием существующего исходного кода  
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
16.09.2011, 17:56     Создать проект с использованием существующего исходного кода #14
я сделал тоже что и Юра, запихнул все файлы в 1 папку, добавил их в проект через solution explorer, и усё.

ты ответь на такой вопрос - у тебя direct SDK То стоит?
-=ЮрА=-
Заблокирован
Автор FAQ
16.09.2011, 18:25     Создать проект с использованием существующего исходного кода #15
Цитата Сообщение от OstapBender Посмотреть сообщение
у тебя direct SDK То стоит?
Из этого
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
#include <d3dx10.h>
заключаю что Direct X10 SDK. Тут в другом дело compilator, ты выполнил команду Register PSDK Directories with Visual Studio???Если этой операции не было проведено компилятор пытается найти хедеры SDK в стандартных каталогах Visual Studio, где их попросту нет они ведь в PSDK Directories!!!
compilator
 Аватар для compilator
2 / 2 / 0
Регистрация: 06.02.2010
Сообщений: 33
16.09.2011, 20:33  [ТС]     Создать проект с использованием существующего исходного кода #16
DirectX SDK у меня установлен. Пути к .h и .lib файлам SDK я прописал. Дело в том, что примеры из книги которые я разбираю запускались, для этого я прописывал пути к директориям SDK. Теперь я просто беру исходники из примеров и хочу сделать на их основе свой проект. Команду Register PSDK Directories with Visual Studio я не выполнял, в мануале на MSDN этого не указывалось, просто пишут - укажите пути к include и library файлам в VC++ Directories. Но можно попробовать, просто я не знаю как это сделать. Ребят, выкладываю архив с файлами из SDK (папки Include и Lib), может скомпилируется, посмотрите пожалуйста. Хотя скорее всего такой трюк не пройдёт, но это те папки к которым я прописывал пути в VS.
Вложения
Тип файла: rar Microsoft DirectX SDK (June 2010).rar (1.54 Мб, 18 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
16.09.2011, 20:35     Создать проект с использованием существующего исходного кода #17
Цитата Сообщение от compilator Посмотреть сообщение
Команду Register PSDK Directories with Visual Studio я не выполнял, в мануале на MSDN этого не указывалось, просто пишут - укажите пути к include и library файлам в VC++ Directories. Но можно попробовать, просто я не знаю как это сделать.
- чичас поковыряюсь, подожди немножко, хорошо что SDK выложил теперь можно дальше компилить...
compilator
 Аватар для compilator
2 / 2 / 0
Регистрация: 06.02.2010
Сообщений: 33
16.09.2011, 23:41  [ТС]     Создать проект с использованием существующего исходного кода #18
Юра, спасибо, надеюсь файлов будет достаточно для компиляции...
-=ЮрА=-
Заблокирован
Автор FAQ
17.09.2011, 12:24     Создать проект с использованием существующего исходного кода #19
compilator, в фале d3dUtil.h запиши подключение хедеров вот так
C++
1
2
3
4
5
#include <cassert>
#include "DirectXSDK\\include\\dxerr.h"
#include "DirectXSDK\\include\\d3dx10.h"
 
#pragma comment (lib,"DirectXSDK\\lib\\d3dx10.lib")
Как ты догадался я извлёк содержимое Microsoft DirectX SDK (June 2010) в папку под названием DirectXSDK. ВСЯ ПРОБЛЕММА БЫЛА В ТОМ ЧТО SDK незарегенен в стандартных путях VS студии!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2011, 15:08     Создать проект с использованием существующего исходного кода
Еще ссылки по теме:

C++ Компиляция исходного кода в работающей программе
Загрузка исходного кода и компиляция *.exe C++
C++ Написать программу с объектами из исходного кода
Некорректное чтение исходного кода C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
17.09.2011, 15:08     Создать проект с использованием существующего исходного кода #20
compilator, в 10-ой студии пути прописываются у каждого проекта по отдельности в Project properties.
Ты настроил их для твоего этого проекта?
Yandex
Объявления
17.09.2011, 15:08     Создать проект с использованием существующего исходного кода
Ответ Создать тему
Опции темы

Текущее время: 03:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru