#include <windows.h>
А теперь попробуем следующий код:
// Loader.h
class Loader
{
public:
void LoadString();
}
// Loader.cpp
#include "Loader.h"
#include
void Loader::LoadString()
{
// code here
}
Попробуем откомпилировать:
error C2039: 'LoadStringA' : is not a member of 'Loader'
Вот вам и windows.h со своими #define...
Подобные вещи мешают использовать даже стандартную библиотеку - макросы min и max не дают воспользоваться шаблонами std::min и std::max.
Лучшее лекарство от подобного безобразия:
// SafeWindows.h
#pragma once
#include <windows.h>
#ifdef min
#undef min
#endif
#ifdef max
#undef max
#endif
#ifdef MessageBox
#undef MessageBox
#endif
...
// Any.cpp
#include "SafeWindows.h"
int main()
{
return ::MessageBoxW(NULL, L"#define is evil", L"Note", MB_OK);
}
Комментариев нет:
Отправить комментарий