Visual studio 2012 无法识别BITMAPFILEHEADER和BitMapInfo Header
我有一个Win32构建的Visual Studio 2012构建的vcxproj项目。该代码在头中定义了位图头结构并集。联合定义在应用程序的头中设置。问题是标头无法识别BITMAPFILEHEADER和BitMapInfo标头。我添加了#包括WinGDI.h和Windows.h,但它仍然无法识别Visual studio 2012 无法识别BITMAPFILEHEADER和BitMapInfo Header,visual-studio-2012,visual-c++-2012,Visual Studio 2012,Visual C++ 2012,我有一个Win32构建的Visual Studio 2012构建的vcxproj项目。该代码在头中定义了位图头结构并集。联合定义在应用程序的头中设置。问题是标头无法识别BITMAPFILEHEADER和BitMapInfo标头。我添加了#包括WinGDI.h和Windows.h,但它仍然无法识别 union MY_BITMAP { struct BITMAPFILEHEADER bmf; struct BITMAPINFOHEADER bmi; }; 我试图更改C/C++预处
union MY_BITMAP
{
struct BITMAPFILEHEADER bmf;
struct BITMAPINFOHEADER bmi;
};
我试图更改C/C++预处理器的定义,并添加了以下代码,但仍然不起作用
_WIN32_WINNT=0x0601
我需要什么设置才能使编译器知道定义
另外,根据@RetiredInja的评论,我收到的bmf和bmi的错误都是C2079。您包括了Windows.h?您是否尝试过删除声明前面的
struct
。@RetiredInja是的,我也包括了它。更新问题。您应该将看到的确切编译错误添加到问题中。没有结构,它对我来说很好。不确定你是否编译C或C++代码,因为你没有指定或适当地标记问题。@ SydReNejia我只得到C2079:对于MyB-ButMex::BMF和MyBBITMAP::BMI。我注意到,当我删除联合定义中的关键字“struct”时,错误消失了。在union定义中添加struct而不添加struct的语法是否有差异?