vs报错

413 阅读1分钟
  • 1 std::max找不到定义
    "max: 不是“std”的成员"

    // 解决办法:
    #include <algorithm>
    
  • 2 无法从"wchar_t*"转换为"char*"
    工程如果设置成unicode的话,根据下面wchar_t就是2Byets类型,当然与char不相容(多字节字符集即窄字节)

    #ifdef _UNICODE\
    typedef wchar_t TCHAR ;\
    #else\
    typedef char TCHAR;\
    #endif
    
    // 解决办法:  
    属性 --> 常规 --> 字符集 --> Unicode切换成多字节字符集
    
  • 3 "无法解析的外部符号 main MSVCRT.lib"
    这是个工程配置问题,也是链接问题
    缘由背景:开源代码是个windows窗口程序,(WinMain()是windows窗口程序的入口点)而我用控制台来构建它,所以控制台的main入口与代码上的WinMain链接不上

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstanc, LPSTR lpCmdLine, int nShowCmd) 
    
    // 解决:  
    属性 --> 链接器 --> 子系统 --> console切换成Windows(窗口)
    
  • 4 ffmpeg被舍弃的函数,报错

    // 解决: 
    属性 --> 常规 --> SDL检测关闭
    
  • 5 流输出时报错"错误C2679二进制“<<”: 没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换)"

    // A  
    #include <string>
    
  • "# #error: The C++ Standard Library forbids macroizing keywords"
    解决: 项目->属性->配置属性->C/C++->预处理器->预处理器定义中加入“_XKEYCHECK_H”