2010-02-11 65 views
3

我下载了Windows SDK 7.0A以探索一些我正在阅读的内容。我下载了一些与SDK一起工作的示例,但是当我尝试编译它们时,出现错误。我查看了SDK的Lib目录并找不到它。我也做了一个完整的系统搜索,也没有找到它。Vista/Win 7 SDK bufferoverflowu.lib链接错误

我已阅读关于这是在编译时添加的特殊链接或在编译指示中进行版本检查的结果。我找不到任何对源代码或所有头文件中的lib的引用。

我运行:
Vista终极
VS 2010 Beta 2的
的Microsoft Windows SDK的Windows 7和.NET Framework 3.5 Service Pack 1的

我的错误:

error LNK1104: cannot open file 'bufferoverflowu.lib'

我只是重新安装,我仍然得到同样的问题。

+0

你为什么使用VS2010 Beta2; RC已经发布。 –

+4

@Mitch - 几天前RC出现了(只对MSDN用户有效) - 给这个人一个机会... –

+0

RC被提供给全世界2月10日星期三(昨天,在我的时区) –

回答

10

您试图构建什么示例 - 一个小小的研究表明bufferoverflowu.lib(和其他相关的bufferoverflow*.lib文件)在以前的SDK中支持使用编译器从Microsoft之前和之后添加编译器生成缓冲区溢出检查(从VS 2003中的/ GS选项开始 - 我认为)。

这些库位于SDK中,因此如果用户使用不支持缓冲区溢出检查的编译器构建Windows程序,那么已经以此方式构建的SDK库将链接到bufferoverflow*.lib中的代码以获取支撑。如果用户使用较新的编译器构建,则所有内容都将链接到具有缓冲区溢出支持的C运行时库。

但是,Windows SDK v7.0仅支持使用VS 2005 SP1或更新版本构建应用程序,所以缓冲区溢出检查代码始终来自C运行库 - bufferoverflow*.lib文件不再需要。

+0

Upvoting放在院子里... –