У меня есть некоторые проблемы с операторами #define в моем коде C ++, однако я не знаю, как с этим справляться в VC ++:
>filetaint.cpp
1>.\filetaint.cpp(272) : error C2872: 'UINT32' : ambiguous symbol
1> could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\basetsd.h(82) : unsigned int WIND::UINT32'
1> or '..\..\include\gen\types_foundation.TLH(80) : LEVEL_BASE::UINT32'
1>.\filetaint.cpp(275) : error C2872: 'UINT32' : ambiguous symbol
1> could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\\include\basetsd.h(82) : unsigned
[...]
========== Сборка:0 успешно выполнено, 1 не выполнено, 0 обновлено, 0 пропущено ==========
Таким образом, проблема в том, что компилятор не знает, использовать ли определение измой Windows SDK "basetsh.h или from types_foundation.h. Я хочу, чтобы он использовал последний. Есть ли какая-либо конструкция в пространствах имен C ++, чтобы сказать компилятору, что выбрать? Я хочу избежать исправления SDK или самой библиотеки.
#include "filetaint.h"
#include "dift.h"
using namespace WIND;
В types_foundation.TLH содержится правильное утверждение. Оно уже есть в путях VC ++ в VS 2008. Я немного запутался здесь ... но, наверное, мне нужно найти способ рассказатькомпилятор, который пока игнорирует SDK;).