• VC学习笔记常见错误调试


    fatal error C1083

    问题描述:无法打开包括文件:“iostream.h”: No such file or directory
    解决方案:应该写成<iostream>
    • 在VC2010上面采用C++风格的头文件而不是C风格的头文件,除非你是在用C。
    • 所有的C++库在std命名空间中定义:using namespace std;
    • 标准头文件:#include <some_file.h>
    • 用户自定义头文件:#include "my_file.h"
    C头文件
    可以继续使用
    C++ 
    (C++98后取消)
    C++ 98 ("c"开头,去掉".h"后缀)
    建议使用
    stdio.h 
    iostream.h
    <iostream>
        <cstdlib>
        <cstdio> 
    assert.h   <cassert>

    C2144

    问题描述:int should be preceded by :

    解决方案:这个是从C#转C++遇到的一个问题。

    C# 语法是这样的:
    public int read();
    c++语法是这样的:
    public:
    int read();
     

    error C2664

    问题描述:“MessageBoxW”: 不能将参数 2 从“const char [17]”转换“LPCWSTR” 

    解决方案:字符集问题,项目-->Properties-->Configuration Properties-->Character Set=Unicode

    warning C4996

    问题描述:warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    解决方案:这是因为VC从2005版本开始,微软引入了一系列的安全加强的函数来增强CRT(C运行时),这里对应的是strcpy_s。_s意为safe的意思,同样的道理,strcat也是同样。因此要解决这个问题,我们可以用strcpy_s来替换strcpy,但是注意strcpy_s并非所有编译器都提供,因此如果要跨编译器,请采用错误信息中所提示的方式,定义_CRT_SECURE_NO_WARNINGS宏来掩耳盗铃吧。另外注意并非所有的加强函数都是在屁股后面加_s,比如stricmp这个字符串比较函数的增强版名字是_stricmp。下面,用strcpy_s来更改程序:
     

    error LNK2001

    问题描述:unresolved external symbol _mainCRTStartup 
    解决方案:没有定义main函数

    error LNK2019

    问题描述:无法解析的外部符号 __imp__InternetGetCookieA@16 ,该符号在函数 "void __cdecl MySend(unsigned int)" (?MySend@@YAXI@Z) 中被引用(其他类似的错误也一样)
    解决方案:应该是你用到了一个库函数,但是你的项目没有把它的库加进去。项目 --> 属性 --> 链接器 -->  输入 --> 附近依赖项 填入你使用到的库
  • 相关阅读:
    关于隐藏UITabBarController和UINavigationController
    Google地图根据地址查询经纬度坐标
    领域驱动设计
    MFMessageComposeViewController
    关于什么时候使用NMock
    博客园现代化建设—[Entity Framework]在LINQ查询中指定返回的字段
    真相大白:为什么Entity Framework不能进行跨数据库查询(附解决方法)
    新问题新方法:在Entity Framework中实现指定字段更新
    分享我对领域驱动设计(DDD)的学习成果
    (转)js去空格
  • 原文地址:https://www.cnblogs.com/dalianliyan/p/3053687.html
Copyright © 2020-2023  润新知