Visual Studio 2017 / Windows 2012上的错误-MFC不支持小于0x0501的WINVER

时间:2018-11-01 19:00:08

标签: visual-c++ visual-studio-2017 windows2012

当我尝试在Windows 2012服务器上编译Visual Studio C ++ 2017,x86应用程序时,出现以下错误

  

错误C1189#错误:MFC不支持WINVER小于0x0501。   请在项目属性中更改WINVER的定义,或   预编译头。 MyProject e:\ program文件(x86)\ microsoft visual   studio \ 2017 \ enterprise \ vc \ tools \ msvc \ 14.13.26128 \ atlmfc \ include \ afxv_w32.h 40

我在stadafx.h文件中添加了以下代码。但这并不能解决问题。

    <style>
            .highest{
                background-color:blue;
            }
            .lowest{
                background-color:red;
            }
      </style>

function showRows(s) {
  var t = s.options[s.selectedIndex].text;
  var rows = document.getElementById('mytab').getElementsByTagName('tr'),
    i = 0,
    r, c;
  while (r = rows[i++]) {

    if (t == 'All') {
      r.style.display = ''
    } else {
      c = r.getElementsByTagName('td')[0].firstChild.nodeValue;
      sxval = r.getElementsByTagName('td')[1].firstChild.nodeValue;
      fcval = r.getElementsByTagName('td')[2].firstChild.nodeValue;
      sgval = r.getElementsByTagName('td')[3].firstChild.nodeValue;
      unval = r.getElementsByTagName('td')[4].firstChild.nodeValue;
      array = [sxval, fcval, sgval, unval]
      var low = Math.min(...array)
      var high = Math.max(...array)
      console.log("lowest" + " " + low)
      console.log("highest" + " " + high)
      console.log(c)
      console.log(t)
      r.style.display = parseInt(c) == parseInt(t) ? '' : 'none';

      //Skip the first column, use :not(:first-child)
      $('tr').each(function(){  
        var vals = $('td:not(:first-child)',this).map(function () {
            return parseInt($(this).text(), 10) ? parseInt($(this).text(), 10) :  null;
        }).get();
        // then find their minimum
        var min = Math.min.apply(Math, vals);
        var max = Math.max.apply(Math, vals);

        // tag any cell matching the min and max value
        $('td', this).filter(function () {
            return parseInt($(this).text(), 10) === min;
        }).addClass('highest');

        $('td', this).filter(function () {
            return parseInt($(this).text(), 10) === max;
        }).addClass('lowest');
      });
    }
  }



};

如何确保我的代码在所有等于或高于Windows 2012的Windows操作系统上都能正常工作。

  

项目=>属性=> C / C ++ =>预编译头值为空。

如果选择“任何CPU”构建选项,则相同的代码将起作用。 请让我知道正确的配置, 谢谢

1 个答案:

答案 0 :(得分:0)

您应该同时定义_WIN32_WINNT和WINVER。

请参见https://msdn.microsoft.com/en-us/library/6sehtctf.aspx

我通常将定义放在项目属性的预处理器定义部分。如果您所有的cpp文件都将其作为stdafx.h中的第一个文件,则将它们放入stdafx.h应该可以。