当我尝试在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”构建选项,则相同的代码将起作用。 请让我知道正确的配置, 谢谢
答案 0 :(得分:0)
您应该同时定义_WIN32_WINNT和WINVER。
请参见https://msdn.microsoft.com/en-us/library/6sehtctf.aspx
我通常将定义放在项目属性的预处理器定义部分。如果您所有的cpp文件都将其作为stdafx.h中的第一个文件,则将它们放入stdafx.h应该可以。