Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
4 / 4 / 14
Регистрация: 03.03.2013
Сообщений: 55

Ошибка при компиляции в VS 2010

30.09.2013, 03:17. Показов 1450. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

При попытке скомпилировать в 10-й студии возникает такая ошибка:
C
1
2
main.c(27): error C2275: bmp_rgb: недопустимое использование этого типа в качестве выражения
func.h(37): см. объявление "bmp_rgb"
Изначально код писался под линь, там все работает...

Пробовал переделать на new/delete, пробовал заменить typedef просто структурой. Не помогло.
Соображалка уже на работет (((
Буду рад помощи)

p.s. Исходники почему-то не загружаются, поэтому скину так...

main.c
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
60
61
62
#include <stdio.h>
#include <stdlib.h>
 
#include "func.h"
 
int main()
{
    FILE * fd; /* файловый дискриптор */
    const char * origin_file = "origin.bmp";
    const char * modif_file = "modif.bmp";
    bmp_file_header BH;
    bmp_info_header BI;
 
    /* открыть катинку */
    fd = fopen(origin_file, "rb");
    if (!fd)
    {
        fputs("Не удалось открыть исходный файл.", stderr);
        return 1;
    }
 
    /* прочитать заголовок */
    fread(&BH, 1, sizeof(BH), fd);
    fread(&BI, 1, sizeof(BI), fd);
 
    /* создаем массив нужной величины */
    bmp_rgb * array = (bmp_rgb *)malloc(BI.width * BI.height * 3);
 
    /* записать байты из картинки в массив */
    fread(array, 1, BI.width * BI.height * 3, fd);
 
    /* закрыть исходный файл */
    fclose(fd);
 
    // ф-я, которая рисует сетку
 
    /* ф-я, которая регулирует яркость */
    change_brightness(array, BI.width * BI.height);
 
    /* создать новый файл */
    fd = fopen(modif_file, "wb");
    if (!fd)
    {
        fputs("Не удалось создать новый файл.", stderr);
        return 1;
    }
 
    /* записать в него заголовок */
    fwrite(&BH, 1, sizeof(BH), fd);
    fwrite(&BI, 1, sizeof(BI), fd);
 
    /* саму картинку */
    fwrite(array, 1, BI.width * BI.height * 3, fd);
 
    /* закрыть новый файл */
    fclose(fd);
 
    /* освобождаем выделенную память */
    free(array);
 
    return 0;
}

func.c
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "func.h"
 
void draw_net(bmp_rgb * array, unsigned int size)
{
 
}
 
void change_brightness(bmp_rgb * array, unsigned int size)
{
    float factor = 1.9;
 
    for (int i = 0; i < size; i++)
    {
        array[i].red *= factor;
        array[i].green *= factor;
        array[i].blue *= factor;
    }
}
func.h
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
#include <stdint.h>
 
/* структура, описывающая заголовок bmp-файла */
#pragma pack(push,1)
typedef struct _bmp_file_header
{
    uint16_t type;      /* сигнатура BM */
    uint32_t size;      /* размер файла */
    uint16_t reserved1; 
    uint16_t reserved2;
    uint32_t offset;    /* смещение от bmp_file_header до
                        битов изображения */
} bmp_file_header;
 
typedef struct _bmp_info_header
{
    uint32_t size;        /* размер файла */
    uint32_t width;       /* ширина (в пикселях) */
    uint32_t height;      /* высота (в пикселях) */
    uint16_t planes;      /* кол-во плоскостей */
    uint16_t bit_count;   /* сколько битов на пиксель */
    uint32_t compression; /* способ сжатия */
    uint32_t sizeimage;   /* размер картинки, если сжата */
    uint32_t x_pels_per_meter;
    uint32_t y_pels_per_meter;
    uint32_t clr_used;
    uint32_t clr_important;
} bmp_info_header;
#pragma pack(pop)
 
/* структура, описывающая пиксель */
typedef struct _bmp_rgb
{
    uint8_t red;
    uint8_t blue;
    uint8_t green;
} bmp_rgb;
 
void draw_net(bmp_rgb * array, unsigned int size);
void change_brightness(bmp_rgb * array, unsigned int size);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.09.2013, 03:17
Ответы с готовыми решениями:

Вижуал СИпп 2010 ошибка при компиляции
Приветствую, форумчане! Установил Visual CИ++ работал исправно, ни с того ни с сего выдает при компиляции ошибку Сигнатура проблемы: ...

Ошибка при компиляции проекта md5 в VS 2010
Привет чуваки. Есть рабочий код http://www.zedwood.com/article/cpp-md5-function Не удается скомпилить этот проект в Visual Studio...

visual studio 2010 ultimate. ошибка при компиляции!!!
всем привет! решил изучать язык программирование C++ скачал штук 50 книг, открываю книгу, читаю:read: и тут:( написано что нужен...

1
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
30.09.2013, 03:56
У меня, на 10 студии, так компилируется:
1>------ Перестроение всех файлов начато: проект: LAB, Конфигурация: Debug Win32 ------
1> main.cpp
1>main.cpp(15): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h(234): см. объявление "fopen"
1>main.cpp(41): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\stdio.h(234): см. объявление "fopen"
1> func.cpp
1>func.cpp(10): warning C4305: инициализация: усечение из "double" к "float"
1>func.cpp(12): warning C4018: <: несоответствие типов со знаком и без знака
1>func.cpp(14): warning C4244: *=: преобразование "float" в "uint8_t", возможна потеря данных
1>func.cpp(15): warning C4244: *=: преобразование "float" в "uint8_t", возможна потеря данных
1>func.cpp(16): warning C4244: *=: преобразование "float" в "uint8_t", возможна потеря данных
1> Создание кода...
1> LAB.vcxproj -> D:\MY C++Projects\LAB\Debug\LAB.exe
========== Перестроение всех: успешно: 1, с ошибками: 0, пропущено: 0 ==========
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.09.2013, 03:56
Помогаю со студенческими работами здесь

Ошибка при компиляции - Microsoft Visual C++ 2010, экспресс-выпуск
Здравствуйте! При компилировании данного кода возникает ошибка. У однокурсника компилятор другой, но этот же код работает. Подскажите, в...

MS VS 2010 C++ ошибка при компиляции
Создаю пустой проект, жму &quot;отладка&quot;. И выдает ошибку что exe файл проекта не найден. http://www.freeimagehosting.net/t/7ywbh.jpg ...

Visual C++ 2010. Ошибка при компиляции.
error C2059: syntax error : 'type' c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio Что за ошибка такая ? Я не...

MSVC 2010 ошибка при компиляции Qt проекта
установил qt, все как надо, но при компиляции студия пишет ошибку и ругается на ui.setupUi(this); и asd w; w.show(); и на Ui::ASDClass...

Ошибка при компиляции Visual Studio 2010
Помогите пожалуйста разобраться, выдаёт вот такую ошибку при компиляции в Visual Studio 2010


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru