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

Отсутствует спецификатор типа - предполагается int - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.76
Edison4
6 / 6 / 0
Регистрация: 23.02.2012
Сообщений: 169
21.11.2012, 17:52     Отсутствует спецификатор типа - предполагается int #1
Здравствуйте форумчане!Вот не понимаю возникновение одной ошибки :
При объявлении указатель типа BYTE сыпеться большая куча ошибок:
C++
1
    BYTE *bits;
Ошибка 3 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 4 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 13 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 14 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 18 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 19 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 22 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 23 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 26 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 27 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 33 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 34 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 41 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 42 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 45 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 46 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 2 error C2143: синтаксическая ошибка: отсутствие ";" перед "*" c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 12 error C2143: синтаксическая ошибка: отсутствие ";" перед "*" c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 17 error C2143: синтаксическая ошибка: отсутствие ";" перед "*" c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 21 error C2143: синтаксическая ошибка: отсутствие ";" перед "*" c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 25 error C2143: синтаксическая ошибка: отсутствие ";" перед "*" c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 32 error C2143: синтаксическая ошибка: отсутствие ";" перед "*" c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 40 error C2143: синтаксическая ошибка: отсутствие ";" перед "*" c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Ошибка 44 error C2143: синтаксическая ошибка: отсутствие ";" перед "*" c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2012, 17:52     Отсутствует спецификатор типа - предполагается int
Посмотрите здесь:

C++ Error C4430: отсутствует спецификатор типа - предполагается int
Error C4430: отсутствует спецификатор типа - предполагается int C++
Ошибка в программе: отсутствует спецификатор типа C++
Одномерный массив (отсутствует спецификатор типа - предполагается int) C++
C++ В классах - отсутствует спецификатор типа - предполагается int
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
21.11.2012, 17:55     Отсутствует спецификатор типа - предполагается int #2
код полностью выложи.
ps10n1ck
 Аватар для ps10n1ck
53 / 47 / 2
Регистрация: 10.11.2010
Сообщений: 132
21.11.2012, 17:59     Отсутствует спецификатор типа - предполагается int #3
по всей видимости не подключен заголовочный файл, в котором определен тип BYTE
или подключите файл в котором определен тип, или просто впишите typedef unsigned char BYTE

Добавлено через 56 секунд
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Edison4
6 / 6 / 0
Регистрация: 23.02.2012
Сообщений: 169
21.11.2012, 18:15  [ТС]     Отсутствует спецификатор типа - предполагается int #4
У меня есть файл в котором есть все инклуды:
E4Engine
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef E4ENGINE_HEADER
#define E4ENGINE_HEADER
#include "E4EMath.h"
#include "EKeyboard.h"
#include "ECube.h"
#include "Camera.h"
#include "SphereBody.h"
#include "BBox.h"
#include "EKeyboard.h"
#include "ETexture.h"
 
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <freeglut.h>
#include <FreeImage.h>
и есть класс текстуры:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef ETEXTURE_HEADER
#define ETEXTURE_HEADER
#include "E4Engine.h"
class ETexture
{
public:
 
    ETexture() {};
    ~ETexture() {};
    int Width;
    int Height;
    int bpp;
    GLuint id_texture;
    void LoadFromFile(char* filename);
    void Delete();
    void Draw();
    void SetPosition(float x,float y) ;
};
#endif
и 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "E4Engine.h"
 
void ETexture::LoadFromFile(char* filename)
{
    
    FREE_IMAGE_FORMAT fif = FIF_UNKNOWN;
    FIBITMAP* dib(0);
    fif = FreeImage_GetFileType(filename,0);
 
    if (fif == FIF_UNKNOWN)
        fif = FreeImage_GetFIFFromFilename(filename);
 
    if (FreeImage_FIFSupportsReading(fif))
        dib = FreeImage_Load(fif,filename);
 
    Width = FreeImage_GetWidth(dib);
    Height = FreeImage_GetHeight(dib);
 
    bpp = FreeImage_GetBPP(dib);
    glGenTextures(1,&id_texture);
    glBindTexture(GL_TEXTURE_2D,id_texture);
    glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR );
    glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR );
    BYTE *bits = new BYTE[FreeImage_GetWidth(dib) * FreeImage_GetHeight(dib) * 3];
    BYTE *pixels = (BYTE*)FreeImage_GetBits(dib);
    for(int pix=0; pix<FreeImage_GetWidth(dib) * FreeImage_GetHeight(dib); pix++)
    {
        bits[pix*3+0]=pixels[pix*3+2];
        bits[pix*3+1]=pixels[pix*3+1];
        bits[pix*3+2]=pixels[pix*3+0];
    }
    glTexImage2D( GL_TEXTURE_2D, 0, 3,Width, Height, 0, GL_RGB, GL_UNSIGNED_BYTE, bits );
    FreeImage_Unload(dib);
    
}
void ETexture::Draw()
{
    /*
    glMatrixMode( GL_MODELVIEW );
    glEnable(GL_TEXTURE_2D);
    glLoadIdentity();
    glBegin(GL_TRIANGLE_STRIP);
    glBindTexture(GL_TEXTURE_2D, id_texture );  
        glTexCoord2f(0,0);  glVertex2f(0, 60);
        glTexCoord2f(0,1);  glVertex2f(0, 0);
        glTexCoord2f(1,0);  glVertex2f(60, 60);
        glTexCoord2f(1,1);  glVertex2f(60, 0);
    glEnd();
    glDisable(GL_TEXTURE_2D);
    glMatrixMode(GL_PROJECTION);*/
}
void ETexture::Delete()
{
 
}
void ETexture::SetPosition(float x,float y)
{
 
}
И вот метод загрузки :
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
void ETexture::LoadFromFile(char* filename)
{
    
    FREE_IMAGE_FORMAT fif = FIF_UNKNOWN;
    FIBITMAP* dib(0);
    fif = FreeImage_GetFileType(filename,0);
 
    if (fif == FIF_UNKNOWN)
        fif = FreeImage_GetFIFFromFilename(filename);
 
    if (FreeImage_FIFSupportsReading(fif))
        dib = FreeImage_Load(fif,filename);
 
    Width = FreeImage_GetWidth(dib);
    Height = FreeImage_GetHeight(dib);
 
    bpp = FreeImage_GetBPP(dib);
    glGenTextures(1,&id_texture);
    glBindTexture(GL_TEXTURE_2D,id_texture);
    glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR );
    glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR );
    BYTE *bits = new BYTE[FreeImage_GetWidth(dib) * FreeImage_GetHeight(dib) * 3];
    BYTE *pixels = (BYTE*)FreeImage_GetBits(dib);
    for(int pix=0; pix<FreeImage_GetWidth(dib) * FreeImage_GetHeight(dib); pix++)
    {
        bits[pix*3+0]=pixels[pix*3+2];
        bits[pix*3+1]=pixels[pix*3+1];
        bits[pix*3+2]=pixels[pix*3+0];
    }
    glTexImage2D( GL_TEXTURE_2D, 0, 3,Width, Height, 0, GL_RGB, GL_UNSIGNED_BYTE, bits );
    FreeImage_Unload(dib);
    
}
Если внутри метода объявлять эти переменные то все работает не ругается но мне нужно объявить в заголовочном файле а если в нем объявляю летит куча ошибок..
ps10n1ck
 Аватар для ps10n1ck
53 / 47 / 2
Регистрация: 10.11.2010
Сообщений: 132
21.11.2012, 20:32     Отсутствует спецификатор типа - предполагается int #5
попробуйте прописать в файле где у вас все инклуды строчку
C++
1
typedef unsigned char BYTE;
Цитата Сообщение от Edison4 Посмотреть сообщение
У меня есть файл в котором есть все инклуды:
если не ошибаюсь данное определение тянется с windows.h, а там в свою очередь с windef.h (не знаю, эти файлы у вас где-то включаются в проекте, или может где-то определен тип BYTE)

пока вы объявляете в методе класса или в поле такое объявление, или просто где-то в заголовочном файле и не включаете этот файл в проект - транслятору будет глубоко параллельно, что у вас там в классе или файле за "матюки" объявляются, как только включили файл в код,
C++
1
#include "ETexture.h"
или вынесли объявление BYTE *bits; куда-то, где оно доступно транслятору - будут выдаваться ошибки если не будет найден тип BYTE (BYTE не является встроенным типом).
Yandex
Объявления
21.11.2012, 20:32     Отсутствует спецификатор типа - предполагается int
Ответ Создать тему
Опции темы

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