代码之家  ›  专栏  ›  技术社区  ›  thorn0

如何用Visual C++ 2010 Express构建记事本+ +?

  •  7
  • thorn0  · 技术社区  · 15 年前

    已安装Windows SDK。用Visual C++ 2008 Express实现了N+++的成功构建。但是现在我有很多关于2010的错误信息 sprintf_s

    1>C:\Program Files\Microsoft Visual Studio 10.0\VC\include\string(676): error C2039: 'sprintf_s' : is not a member of '`global namespace''
    1>C:\Program Files\Microsoft Visual Studio 10.0\VC\include\string(676): error C3861: 'sprintf_s': identifier not found
    

    请帮忙。

    3 回复  |  直到 11 年前
        1
  •  20
  •   Hans Passant    15 年前

    项目中有一个名为no\ms的属性表_该死。道具(转换后)。在那张纸上,人们对过去5年来微软一直试图做的事情表达了相当多的仇恨。

    他们有点太过火了,把所有的东西都关掉了,甚至禁用了到sprintf\u s()的链接。这是错误的来源,stdio.h头省略了声明,但字符串头使用它。不确定速成版是否支持编辑项目属性页,但零售版中的步骤是:

    • 视图+属性管理器
    • 打开其中一个节点,找到“没有ms shit”
    • C/C++、预处理器、预处理器定义
    • 改变 __STDC_WANT_SECURELIB__=0

    这个项目现在编译干净了。我在复制文件时确实遇到了生成错误,这是一个生成后事件。如果你想不出如何解决这个问题,就再问一个问题。

        2
  •  4
  •   ComFreek    13 年前

    奇怪。我有Visual Studio 2010 Ultimate,它甚至不允许我访问“查看”->“属性页”菜单项。它对我来说是残废的。

    当唐浩在Windows和visualstudio中开发时,他应该顺其自然,而不是诅咒微软。


    这对我使用 :
    • 你必须编辑 没有\u ms_妈的。vsprops (*.vsprops,不仅仅是*.props!):
      __STDC_WANT_SECURE_LIB__=0 通过 __STDC_WANT_SECURE_LIB__=1

    • _CRT\u安全\u无警告

        3
  •  2
  •   cchris    15 年前

    仔细查看源代码可以发现,除非使用此属性表,否则大多数库调用都会产生无尽的噪音SciLexer.dll项目。斯金特拉是跨平台的,所以它不需要所有特定的窗口粗骨料您提到过,微软在替换标准字符串库方面做得太过火了,尽管他们避免缓冲区溢出的尝试可能是合法的。

    CChris公司

    推荐文章