最近学习DX3D,我把一个vs.net 2005的源码演示程序用VC6中编译,刚开始有一大堆的编译和链接错误,经过一番修改设置,目前就剩下这两个链接错误了:dxerr.lib(dxerr.obj) : error LNK2001: unresolved external symbol ___security_cookie
dxerr.lib(dxerr.obj) : error LNK2001: unresolved external symbol @__security_check_cookie@4
俺就不知道这个___security_cookie是在哪里定义的,怎么设置都不行,很是郁闷,请各位帮忙看一下。

解决方案 »

  1.   

    vs2005使用的directx sdk和vc6的不同,看是否lib库有区别?
      

  2.   

    Derectx的SDK需要自己下载吧下载完够把include\Lib导入你的工程... 
      

  3.   

    试试
    http://blog.csdn.net/tonxi/archive/2007/04/09/1557863.aspx
      

  4.   

    再试试
    http://forums.amd.com/forum/messageview.cfm?catid=67&threadid=84075
      

  5.   

    SDK都已完整下载,lib的路径也都已设置好,而且原始代码已在vs 2005成功编译运行,就是移植到VC6在链接时出现这个错误,而且我也仔细检查了vs 2005和VC6的include和lib路径设置和所调用的库设置,使之完全一致,还是无法解决。
      

  6.   

    这是一个vc6没问题,而用vc7编译出问题的
    http://www.groupsrv.com/dotnet/about26841.html
      

  7.   

    因为VC6的SDK库与05的SDK库不一样。
    不仅仅是DX SDK库还有OS SDK也不一样。
      

  8.   

    感谢各位的解答,按照4楼五岭散人提供的方法,我加一个bufferoverflowu.lib库后,release版本可成功编译运行了,但debug版还是有链接错误,按JID提到的第二种dirty way:int __security_cookie;
    void __fastcall __security_check_cookie(void *stackAddress){}我把两行代码加到DxStdAfx.h中或单独生成个.lib文件加到project中都还是问题依旧,咋整啊!!!
      

  9.   

    没法啦,改用dxerr8.lib了,还得改一堆代码,不过还是谢谢各位。
      

  10.   

    加入bufferoverflowU.lib就可以了。#pragma comment(lib,"bufferoverflowU.lib")以下是微软的解决方案:
    http://support.microsoft.com/kb/894573/zh-cn