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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ C++ в netbeans http://www.cyberforum.ru/cpp-beginners/thread965392.html
Помогите пожалуйста. Нужно сделать 5-ый вариант.
C++ Подскажите литературу Здравствуйте. Не могли бы вы посоветовать мне литературу о работе со строками, и потоками в С++. Буду очень признателен. http://www.cyberforum.ru/cpp-beginners/thread965380.html
задачка C++
Добрый день,дорогие форумчане!Я битый час сижу над задачкой и никак не могу ее сделать...Надеюсь найдется тот,кто сможет сделать ее..буду очень очень благодарен.. даны 4 числа:a,b,c,d.Если среди них одно положительное,то наименьшее из этих чисел увеличить на полусумму оставшихся.если среди них ровно три положительных,то наибольшее из этих чисел возвести в квадрат.В противном случае минимальное...
C++ Напишите программу, в которой использовалась бы функция, возвращающая процент от заданного числа
Напишите программу, в которой использовалась бы функция, возвращающая процент от заданного числа. В качестве аргументов функции передаются число и значение процента, который нужно вычислить.
C++ Параллельное программирование http://www.cyberforum.ru/cpp-beginners/thread965376.html
Может кто-нибудь распараллелить этот код? Способ не важен. Заранее премного благодарен. #include <stdio.h> #include <time.h> void main(void) { float start = clock(); // активация таймера1. // Открываем файл FILE *fin; FILE *fout;
C++ OpenMP Проблема такова: Прогу саму с горем пополам написал, а распараллелить по OMP не могу. Может кто-нибудь помочь? #include <stdio.h> #include <time.h> void main(void) { double start = clock(); // Открываем файл FILE *fin; подробнее

Показать сообщение отдельно
__sirroko
4 / 4 / 3
Регистрация: 03.03.2013
Сообщений: 55
30.09.2013, 03:17     Ошибка при компиляции в VS 2010
Доброго времени суток!

При попытке скомпилировать в 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);
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru