2010-02-11 43 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放在院子裏... –