VS2022 C++ MFC LINK2005 LINK1169

VS2022 C++ MFC LINK2005 LINK1169

简单地说就是重定义,相同的东西定义/编译了多次

我参考了下面的,但是都不行:

https://blog.csdn.net/zhaoyong26/article/details/84635383

https://blog.csdn.net/Xiuhua2017/article/details/109728879

https://blog.csdn.net/qq_40674300/article/details/115337002

https://blog.csdn.net/qq_64319050/article/details/122931804

后来发现,把有问题的include放到cpp而不是h文件,并且放在其中所有include的最后就好了,很玄学


想明白了一点点,似乎是因为我新加的include有#pragma once声明,所以放到后面没问题,反过来就不行了,其他头文件不一定有#pragma once

所以建议所有头文件开头加上#pragma once,或者善用#ifndef、#define和#endif