GPGPU

NVIDIA CUDA 3.0 SDK Samples

При компилировании стандартных примеров из NVIDIA GPU Computing SDK code samples 32-bit, на платформе Windows XP в Visual Studio 2005/2008 возникает странная ошибка:

Error 35 error: identifier «IUnknown» is undefined C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objbase.h 240
Error 37 error PRJ0019: A tool returned an error code from «Compiling with CUDA Build Rule…»

Не найден интерфейс IUnknown, являющийся базовым интерфейсом для COM/DCOM объектов.

Однако CUDA не использует COM объекты. Для исправления ситуации достаточно добавить в *.CU файлы:

#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#endif

#define WIN32_LEAN_AND_MEAN отключает в windows.h include второстепенных .h файлов, ускоряя компиляцию и одновременно избавляя нас от ошибки.
См. http://msdn.microsoft.com/en-us/library/6dwk3a1z(vs.71).aspx

Далее