Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с компиляцией классов.  (Прочитано 9647 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Rom
Гость
« : 15-02-2004 11:18 » 

<....>
« Последнее редактирование: 15-04-2006 22:20 от Алексей1153 » Записан
Rom
Гость
« Ответ #1 : 15-02-2004 13:20 » 

Код файла 1.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//-----------------------------------------------------------------------------
// File: engine3dmodel.h
// Desc: Содержит описание класса для работы с 3D моделями.
// Входит в состав движка.
//-----------------------------------------------------------------------------

#pragma comment (lib, "d3d8.lib")
#pragma comment (lib, "d3dx8.lib")
#pragma comment (lib, "winmm.lib")
#pragma comment (lib, "dxguid.lib")

#include <windows.h>
#include <windowsx.h>
#include <fstream.h>
#include <stdio.h>
#include <time.h>
#include <d3d8.h>
#include <d3dx8.h>



;class c3DModel@@@@@@@@@@@@@@@@@@@@@@@@ НА ЭТУ СТРОКУ УКАЗЫВАЕТ КОМПИЛЯТОР.
public:
LPDIRECT3DDEVICE8 p_d3d_Device;
LPD3DXMESH p_d3dxMesh;
LPDIRECT3DVERTEXBUFFER8 p_d3dVertexBuffer;
LPDIRECT3DINDEXBUFFER8 p_d3dIndexBuffer;

int iSizeOfVertex;

D3DXMATRIX mat3DModel, matTr, matT;

// Расстояние по каждой оси от центра 3D модели до начала координат.
FLOAT MoveX, MoveY, MoveZ;
// Масштабирование 3D модели по каждой оси.
FLOAT ScaleX, ScaleY, ScaleZ;

CUSTOMVERTEX *p_Vertices;
CUSTOMVERTEXPN *p_VerticesPN;
CUSTOMVERTEXPN2T *p_VerticesPN2T;

DWORD dwNumMaterials, dwNumBumpMaps, dwNumEnvMaps;

LPD3DXBUFFER p_MaterialBuffer;
D3DMATERIAL8 *p_Materials;
LPDIRECT3DTEXTURE8 *p_Textures, *p_BumpMapTextures, *p_BumpMaps, *p_EnvMaps;

public:
c3DModel(void);
int Load3DModelFromFile(char *sName, DWORD dwOptions, LPDIRECT3DDEVICE8 fp_d3d_Device,
BOOL bReleaseMatBuf);
int Init3DModel(LPDIRECT3DDEVICE8 fp_d3d_Device, BOOL bReleaseMatBuf);
void InitBumpMaps(void);
int Move3DModel(float x, float y, float z);
int Set3DModelPos(float x, float y, float z);
int Rotate3DModelX(float x);
int Rotate3DModelY(float y);
int Rotate3DModelZ(float z);
int Scale3DModel(float x, float y, float z);
int Transform3DModel(void);
int Draw3DModel(BOOL bDrawMat, BOOL bDrawTex);
int DrawBump3DModel(BOOL bDrawMat, BOOL bDrawTex, BOOL bDrawBump, BOOL bDrawEnv);
int Destroy3DModel(void);
}
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Код файла 2.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//-----------------------------------------------------------------------------
// File: enginetext.h
// Desc: Содержит описание класса для работы с текстом.
// Входит в состав движка.
//-----------------------------------------------------------------------------

#pragma comment (lib, "d3d8.lib")
#pragma comment (lib, "d3dx8.lib")
#pragma comment (lib, "winmm.lib")
#pragma comment (lib, "dxguid.lib")

#include <windows.h>
#include <windowsx.h>
#include <fstream.h>
#include <stdio.h>
#include <time.h>
#include <d3d8.h>
#include <d3dx8.h>
#include "engine3dmodel.h"



;class cText
{
public:
LPDIRECT3DDEVICE8 p_d3d_Device;
LPD3DXFONT p_d3dxFont;

D3DCOLOR d3d_Color;

c3DModel Text3D;

HFONT Font;

RECT Rect;

public:
cText(void);
HRESULT Init_Text(LPDIRECT3DDEVICE8 fp_d3d_Device, HFONT fFont, D3DCOLOR fd3d_Color);
int Set_Text_Color(D3DCOLOR fd3d_Color);
HRESULT Draw_Text(char *strText, DWORD dwFormat, int x, int y);
int Destroy_Text(void);
}
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Компилятор пишет
error C2011: 'c3DModel' : 'class' type redefinition
и указывает на сторку, помеченную выше в файле 1.
Записан
Rom
Гость
« Ответ #2 : 16-02-2004 19:23 » 

Проблема заключалась в повторном включении заголовочных файлов и решалась с помощью директив препроцессора.
Вот ссылка:
http://www.rsdn.ru/Forum/?mid=60172
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 13-04-2006 21:58 » 

(коммент при перемещении: )

всё вата, кроме самого последнего поста. Ссылка работает. А так - в ЧАВО
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #4 : 14-04-2006 09:58 » new

Согласен - небольшого ответа в ЧАВО хватит, можно сделать получше чем на РСДН.
Просто взять на заметку вопрос для ЧАВО - остальное можно убить.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines