MF C ошибка компиляции с использованием классов, встроенных в консольное приложение C ++ - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь построить фрактальное приложение в MF C, используя код, который я написал в консольном приложении C ++. У меня в приложении MF C созданы все те же классы, и я щелкнул по build (я не ожидал, что это сработает)

В любом случае, он много жалуется на класс RGB.h и RGB. cpp class.
Нужно ли что-то менять в конфигурации проекта?

Если я создаю консольное приложение, оно работает нормально, но при попытке использования классов в MF C application.

Просто хотел узнать, могу ли я что-нибудь сделать с этими двумя ошибками, поскольку я не уверен, с чего начать.

RGB. cpp

ошибка компилятора: ожидается a;

RGB::RGB(double r, double g, double b) : r(r), g(g), b(b) {}

RGB.h

Ошибка Синтаксическая ошибка C2143: отсутствует ')' перед '|'

RGB(double r, double g, double b);

1 Ответ

2 голосов
/ 28 февраля 2020

Нет проблем с кодом, размещенным как таковой. Но RGB - это макрос, объявленный в wingdi.h, который включается при включении Windows .h. Он определяется следующим образом:

#define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))

Этот макрос препроцессора конфликтует с символом, используемым для типа. Проще всего использовать другой символ для типа, например rgb.

...