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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
compilator
2 / 2 / 0
Регистрация: 06.02.2010
Сообщений: 33
#1

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

15.09.2011, 11:57. Просмотров 2058. Ответов 23
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане! Помогите пожалуйста с таким вопросом: есть готовые .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++
16. Открыть файл, имя которого задается с клавиатуры. Создать новый файл, удалив заданную последовательность символов из файла. ...

Создать отсутствующий файл и записать в него начальный и конечный элементы существующего файла - C++
Даны имена двух файлов вещественных чисел. Известно, что первый из них существует и является непустым, а второй в текущем каталоге...

нет исходного кода - C++
Функция для перевода десятичных целых чисел в произвольную систему счисления во время отладки выдает нет исходного кода void...

Защита исходного кода - C++
Как обфусцировать плагин. Как я понял это способ защиты от декомпиляции amxx, если нет поправьте меня. знаю универсального способа нет,...

Некорректное чтение исходного кода - C++
#include<iostream> #include<conio.h> using namespace std; int main() { int a; int b; int c; ...

Востановления исходного кода из файла o - C++
Здравствуйте. Писал программу, неожиданно компьютер перезагрузился в файл cpp с исходным кодом записалось одни NULL, копий исходного кода...

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

Я к тому что вот такая запись для папки project1 уже не будет тождественной для папки project2
C++
1
#include "additiondir\\someheader.h"
Для разбора лучше всего привести часть кода с подключением а также указать реальное рассположение файлов и папок
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
2 / 2 / 0
Регистрация: 06.02.2010
Сообщений: 33
15.09.2011, 15:28  [ТС] #4
Самое интересное это то, что даже когда я добавляю внешние файлы в папку проекта, всё равно пишет unresolved external symbol.
sandye51
программист С++
682 / 584 / 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
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
2 / 2 / 0
Регистрация: 06.02.2010
Сообщений: 33
15.09.2011, 23:13  [ТС] #9
Проект полностью рабочий, т.к. исходники я беру из готового примера, который сам по себе запускался, проблема в самой системе подключения. Выкладываю исходный рабочий проект, нерабочий вариант и папку с внешними исходниками (все под VS 2008), хотя очень не хотелось кого-то отвлекать. Благодарю за помощь.
Вложения
Тип файла: rar Проекты.rar (6.69 Мб, 28 просмотров)
OstapBender
583 / 521 / 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
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
583 / 521 / 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!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2011, 18:25
Привет! Вот еще темы с ответами:

Написать программу с объектами из исходного кода - C++
Есть код программы на Borland, нужно переписать эту же программу, но с объектами. За подробностями в ЛС.

Компиляция исходного кода в работающей программе - C++
Привет. Подскажите, как можно скомпилировать код, и использовать полученный результат в запущенной программе, если этот самый код...

Результат программы — вывод исходного кода - C++
Здравствуйте! Нужна ваша помощь. Что надо написать в исходном коде программы, что бы результатом работы этой программы был вывод...

Загрузка исходного кода и компиляция *.exe - C++
Помогите разобраться как в Visual Studio 2010 загрузить исходный код для компиляции программы?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.09.2011, 18:25
Ответ Создать тему
Опции темы

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