Ваш компилятор не поддерживает OpenMP. Другой вариант - использовать библиотечный подход, доступны как Intel Threading Building Blocks, так и Microsoft Concurrency Runtime (VS 2010).
Существует также набор интерфейсов, называемых Parallel Pattern Library, которые поддерживаются обеими библиотеками, и в них есть шаблонный параллельный вызов библиотеки.
так вместо:
#pragma omp parallel for
for (i=0; i < numPixels; i++)
{ ...}
вы бы написали:
parallel_for(0,numPixels,1,ToGrayScale());
где ToGrayScale - функтор или указатель на функцию. (Обратите внимание, что если ваш компилятор поддерживает лямбда-выражения, которых он, скорее всего, не поддерживает, вы можете встроить функтор как лямбда-выражение).
parallel_for(0,numPixels,1,[&](int i)
{
pGrayScaleBitmap[i] = (unsigned BYTE)
(pRGBBitmap[i].red * 0.299 +
pRGBBitmap[i].green * 0.587 +
pRGBBitmap[i].blue * 0.114);
});
-Rick