写作业遇到的。
大致的情况如图:
问题出在tools.h 头文件中的 NTL_NO_MIN_MAX.
在NTL官网找到的具体说明如下:
好像有点糊。文字内容也贴在这里:
TIP: When writing windows applications using NTL (as opposed to console applications) you might want to compile your program with the NTL_NO_MIN_MAX macro defined. This suppresses the declaration of several min and max functions in file tools.h that conflict with macro names in the MFC header files. Do not attempt to build the library with this macro defined — only programs that use the library. Another solution is to define the macro NOMINMAX, which will tell the Microsoft compiler to not define min/max macros.
解决办法:
在引入Windows.h前加上NOMINMAX的宏定义。
#define NOMINMAX
#include<Windows.h>
题外话(最终的解决办法):
因为另外几个项目的头文件也都基本相同,但是只有这里遇到了这种情况所以觉得很神奇。研究了一下,发现只要在引入Windows.h前引入NTL库就不会有报错出现,所以我这里是一个头文件里有include ntl,另一个里面有include Windows.h,在引入时把它们两个调换一下顺序就可以了。
应该就是上面图里说的,如果先在windows.h里面定义了min和max就会产生冲突?
原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/245429.html