就是我用vc2008时使用字符串都要在前面加个L,这是为什么?比如说MessageBox(hwnd,L"aaaaa",L"bbbbb",MB_OK)
还有就是我用枚举的时候,
enum take{a,b,c};
int w=take::a;
什么都正确,但编译时总要提示"使用了非标准扩展: 限定名中使用了枚举"
很烦,有没有什么方法屏蔽这个提示?

解决方案 »

  1.   

    字符串前要加 L 是因为你编译的时候采用的是 Unicode字符集。。
    当你没有加 L的时候 编译器不知道此处的字符串应安那个字符集版本编译它会默认按照ANSI 多字节编译。。
    所以编译时候当然会出错啦
      

  2.   

    vc2008时使用字符串都要在前面加个L
    //L宏,unicode字符串//int w = a;
    使用了非标准扩展: 限定名中使用了枚举“enum”
    当引用类型内的枚举时,无需指定枚举的名称。
    文件范围的枚举定义相当于常量,也不需要限定名。
    忽略此警告
    #progma warning(push)
    #progma warning(disable : 4482)
    #progma warning(pop)