Visual Studio 2005 移植 (札记之一)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
Visual Studio 2005 移植 - WINVER,warning C4996, error LINK1104

一、WINVER
  Compile result:
  WINVER not defined. Defaulting to 0x0502 (Windows Server 2003)

  windows   server   2003 
  winver>=0x0502 
    
  windows   xp   
  winver>=0x0501 
    
  windows   2000 
  winver>=0x0500 
    
  windows   nt   4.0 
  winver>=0x0400 
    
  windows   me 
  winver>=0x0500 
    
  windows   98 
  winver>=0x0410 
    
  windows   95 
  winver>=0x0400  

二、编译警告:warning C4996 与 Security Enhancements in the CRT

将过去的工程用VS2005打开的时候。你有可能会遇到一大堆的警告:warning C4996。
比如:
warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use

_CRT_SECURE_NO_WARNINGS. See online help for details.
warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation,

use _CRT_SECURE_NO_WARNINGS.

原因是Visual C++ 2005使用了更加安全的run-time library routines。
新的Security CRT functions(就是那些带有“_s”后缀的函数):
http://msdn2.microsoft.com/en-us/library/wd3wzwts(VS.80).aspx

那么如何搞定这些警告呢:
方法一:将原来的旧函数替换成新的Security CRT functions。
方法二:用以下方法屏蔽这个警告。
1.在预编译头文件stdafx.h里(注意:一定要在没有include任何头文件之前)定义下面的宏:
  #define _CRT_SECURE_NO_DEPRECATE
2.#param warning(disable:4996)
3.更改预处理定义:
  项目->属性->配置属性->C/C++ -> 预处理器 -> 预处理器定义,增加_CRT_SECURE_NO_DEPRECATE
方法三:方法二没有使用新的更安全的CRT函数,显然不是一个值得推荐的方法,可是你又不想一个一个地改,那么还有一个更方便的方法:
  在预编译头文件stdafx.h里(同样要在没有include任何头文件之前)定义下面的宏:
  #define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
  在链接的时候便会自动将旧函数替换成Security CRT functions。
注意:这个方法虽然使用了新的函数,但是不能消除警告(原因见红字),你还得同时使用方法二。。。

三、link error 1104
原因:当从vc6移植到.net时,会导致这个链接错误!
解决:项目属性->配置属性->链接器->输入->忽略特定库,加入libcd.lib;或直接在命令行中加入: /nodefaultlib:"libcd.lib"
注意:是否是libcd.lib,与C/C++属性中的“代码生成”选项相关

参考:
Security Enhancements in the CRT :
http://msdn2.microsoft.com/en-us/library/8ef0s5kh(VS.80).aspx
Secure Template Overloads :
http://msdn2.microsoft.com/en-us/library/ms175759(VS.80).aspx



 
C++报错 sprintf': This function or variable may be unsafe. Consider using sprintf_s VS 2019中编译 C++ 语言项目,如果使用了 sprintf函数,编译时便会提示如下错误: error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNIN... 阅读详情

相关推荐

c++代码使用sprintf时遇到报错,错误 C4996 ‘sprintf‘:

严重性 代码 说明 项目 文件 行 禁止显示状态。

分享知识 2291

C4996‘sprintf‘: This function or variable may be unsafe. Consider using sprintf_s instead.

将 sprintf 改为 sprintf_s,需要注意函数的结构也要修改,sprintf_s需要添加参数 sizeof(xxx)。是否添加 #define _CRT_SECURE_NO_WARNINGS 对代码报错无影响。还有一种解决方法是在文件头中添加。是否添加 #define _CRT_SECURE_NO_WARNINGS 对代码报错无影响。还有一种解决方法是在文件头中添加。将 fscanf 改为 fscanf_s。

你好,明天,,的博客 879

报错:出现错误:'sprintf':This function or variable may be unsafe.Consider using sprintf_s instead.To disabl

VS中出现如上的错误:意思是编译器认为你的函数不安全。 解决办法: 方法一:调用VS的那些带“_s”后缀的非标准函数,即在其后加上"_s",如sprintf改为sprintf_s 。 方法二:在文件最开始添加#define _CRT_SECURE_NO_DEPRECATE或#pragma warning(disable:4996) ,这是忽略警告的方法(一般比较少用)。 ...

boss-dog 3151

Visual StudioVS)中编译报错: 错误 C4996 ‘sprintf‘: This function or variable may be unsafe. Consider using

这个错误信息是一个编译器警告,它表示正在使用的 sprintf 函数可能不安全。可以通过另外一种方法解决这个问题,在属性中添加宏。如果希望禁用此警告,可以在代码中定义宏。添加好后再次运行编译即可解决该问题,冲冲冲!编译时报错提示:错误。

qq_40280673的博客 4572

Visual Studio 2005 移植札记之一)【zhuan】

Visual Studio 2005 移植 - WINVER,warning C4996, error LINK1104一、WINVER Compile result: WINVER not defined. Defaulting to 0x0502 (Windows Server 2003) windows server 2003 winver>=0x0502...

199

eMbedded Visual C++ 到 Visual Studio 2005 升级向导

智能设备开发eMbedded Visual C++ 到 Visual Studio 2005 升级向导Visual Studio 2005 提供了升级向导,可以将 eMbedded Visual C++ 3.0 和 eMbedded Visual C++ 4.0 项目迁移到 Visual Studio 2005。 该升级向导可: 创建一个 Visual Studio

波拿巴的专栏 2031

VS2003-2005 移植

VS2003 WEB应用程序向VS2005移植 译自:http://webproject.scottgu.com/VisualBasic/Migration/Migration.aspx作者:Scott Guthrie. VS2003 WEB应用程序向VS2005移植 下面的向导将向你展示,如何快速简便地把VS2003 网络应用程序移植VS2005平台。请详细阅读第一

kagar的专栏 3032

Visual Studio 2005遇上LINQ To SQL

Visual Studio 2005遇上LINQ To SQL 文/黃忠成   前陣子,我發表了VS2005遇上LINQ一文,其實有件事我未告訴各位,不過我想許多人都已經猜到了吧?  我們既然能在VS 2005中呼叫.NET Framework 3.5的LINQ函式,那這也意味著,原來的VS 2005專案,能參考VS 2008所編譯出來的Assembly。  那這有何好

黄忠成 2756

将前台设计的静态html页面移植visual studio 2005

 通常我们都会有前台美工制作好静态页面,然后交由程序员进行后台的编写。这就涉及如何高效的将前台设计的静态html页面移植visual studio 2005中,即将.html转换成.aspx,并且可在设计视图界面进行“设计”。结合我现在做的项目,前台美工使用的Dreamweaver设计的。每一个.aspx页面在body中都会有一个form标签,这个就是表单。但是在前台设计静态页面的时候,

cychai的专栏 2074

Team Up!用Visual Studio 2005 Team System组织所有的装备

作者:Chris Menage翻译:贾菡相关技术:Visual Studio 2005难度:★★★☆☆读者类型:软件项目经理、软件测试人员、软件开发人员    [摘要]本文基于Visual Studio 2005 Team System CTP,为您介绍在软件开发周期中中的开发进程、团队支持、工作项跟踪、单元和装载测试及其他。    软件开发通常被认为是个很困难的过程。前人已经通过组织无数次地学习

sunkangta的专栏 1781

Visual Studio 2005 Team Foundation Server Beta3 安装手记

拿到VS 2005 beta3安装盘,立马把电脑升级。新买了一个80G的硬盘,旧的20G的硬盘已经塞满了。本来打算在原128M内存的基础上加256M,可买回来的与旧的不能一起用。我的还是SDROM,还好CPU是P4 2.0应该问题不大,试着装一装吧,虽然离microsoft给的条件还错比较大。上次听开心就好说,他们的电脑都是1.5G以上的内存,不过在做VS Team System演示...

Anna_0110的博客 180

VS2003-2005 移植(续)

http://www.microsoft.com/china/msdn/library/webservices/asp.net/webproject.mspx?mfr=true官方地址 http://lgp.cnblogs.com/archive/2006/03/14/349620.html个人BLOG(一)http://lgp.cnblogs.com/archive/2006/03/

kagar的专栏 1752

[转载]在visual studio 2005 下建立openGL开发环境

今天按一篇博客整了OpenGL的开发环境,现转载如下: OpenGL入门学习-----第一课----编写第一个OpenGL程序 OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。 1、与C语言紧密结合。 Ope

学海无涯 5496

使用Visual Studio 2005创建以及移植智能设备自定义控件

本文适用于:   Microsoft .NET Compact Framework version 1.0   Microsoft .NET Compact Framework version 2.0   Microsoft Visual Studio .NET 2003   Microsoft Visual Studio 2005   Windows Mobile 2003 software摘要

ITBUG的专栏 2639

将现有企业级模板项目Visual Studio .NET 2003 迁移到 Visual Studio 2005

“企业级模板项目”这个术语是指从 Visual Studio .NET 2003(或 Visual Studio .NET 2002)企业级模板实例化的 Visual Studio 解决方案。这些解决方案中包含一个或多个 .etp(企业级模板项目)文件。与迁移常规的 Visual Studio 项目和解决方案文件相比,将企业级模板项目Visual Studio .NET 2003 迁移至

jxufewbt的专栏 1039

VS2003 WEB应用程序向VS2005移植

译自:http://webproject.scottgu.com/VisualBasic/Migration/Migration.aspx 作者:Scott Guthrie. VS2003 WEB应用程序向VS2005移植 下面的向导将向你展示,如何快速简便地把VS2003 网络应用程序移植VS2005平台。请详细阅读第一至第六条指引,目的是让你了解VS2005的网...

anluo4560的博客 163

Visual Studio 2005 集成开发环境

Visual Studio 2005 集成开发环境   作者

敦格 4002

Visual Studio 2005 官方使用教程

http://msdn.microsoft.com/zh-cn/library/ms165079(VS.80).aspx  Visual Studio 入门<!--var theForm = document.forms[aspnetForm];if (!theForm) { theForm = document.as

liusj2000的专栏 7729
上一篇: 常用邮箱POP、SMTP地址
下一篇: VC界面库(转)
hylaking
博客等级 码龄22年 82粉丝 105原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值