天天看点

visual studio 中报LNK2019:WinMain各种符号被引用的问题的解决(win32控制台,应用程序)

  相信您已经尝试过类似的解决方法:把vs项目中的链接器->系统->子系统改成窗口类型或者CONSOLE类型,当然,大部分的问题都可以通过这种方式解决,如果你的操作正确的话。

  就好像这种方法一样:https://blog.csdn.net/yj574008854/article/details/45530453

  但是,有些人会发现解决不了自己的问题,比如我(在自学游戏编程入门时按照书上使用代码时报了如此的错误)。

  话不多说,言归正传。

  当我们发现以上及类似的解决方法无法解决我们的问题时,我们需要做一件事:先确定是否有对应的主函数,上述教程中写的很清楚,WinMain,wWinMain,main,wmain,或者 _tmain等等。

  如果我们确定有这些,那么到下一步。

  检查自己的函数声明。我们经常会有写出 xx.h 和xx.cpp的文件形式,h文件放入函数的声明和类定义,cpp文件写入类内成员函数的实现以及通用函数的实现,所以请检查这些函数有没有被完整定义。如果也有,请关闭这篇文章;如果没有,请继续向下看。

  当你发现,有些函数当前无法被完整定义时(比如在学习游戏编程时,游戏引擎中无法完全实现游戏的开始、结束、循环等等),而希望在另一个不对应的文件中定义这些函数时,就用到了我下面要说的了。

  extern   

  当你无法对某些函数进行完整定义时,在h文件中把该函数用extern关键字声明为外部文件,然后在cpp文件中再次声明,而不加关键字,此时就已解决问题。

  但是,请不要马上进行调试运行。因为你的函数仍旧是不完整的,如果想要进行调试,那么请你在任何你想要的运行的文件中补全这些函数的定义,然后运行。这篇文章就讲到这里,如果出现新的问题欢迎在评论区进行讨论。

继续阅读