我有一个这样声明的接口:
#if defined _WIN32 || _WIN64
typedef CRITICAL_SECTION MutexHandle;
#else
typedef pthread_mutex_t MutexHandle;
#endif
class IMutex
{
public:
enum MutexState
{
UNLOCKED = 0,
LOCKED
};
virtual ~IMutex() { }
virtual int32_t Lock() = 0;
virtual int32_t Unlock() = 0;
virtual const MutexState& GetMutexState() const = 0;
virtual MutexHandle& GetMutexHandle() = 0;
};
问题是,我需要在 CRITICAL_SECTION 定义中包含 windows.h;
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#undef WIN32_LEAN_AND_MEAN
但这不会导致可能的标头包含使用该界面的其他人的问题吗?
如何在不必包含整个 windows.h 的情况下声明我的 typedef?
谢谢