【发布时间】:2017-10-10 19:21:12
【问题描述】:
我必须使用 main() 并从 windows.h 调用一个函数。
以下代码希望使用WinMain() 函数而不是main()。
#include <windows.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
int vk_Shift = 16;
while (1)
{
if (GetAsyncKeyState(vk_Shift) < 0)
{
printf("Shift is pressed\n");
}
}
}
错误
Error 1 error LNK2019: unresolved external symbol _WinMain@16
referenced in function ___tmainCRTStartup
Error 2 error LNK1120: 1 unresolved externals
如何在 VS2013 中完成这项工作?
【问题讨论】:
-
我没有将 VS 用于 C 代码,但我想将其配置为“控制台”应用程序应该可以解决问题。
-
为什么“必须”使用 main()?但是,正如@FelixPalmen 指出的那样,控制台应用程序使用“main”作为它们的入口点,而 GUI 应用程序(默认情况下)使用 WinMain。不知道有没有设置,也许你只需要将应用重新创建为控制台应用即可。或者只是将链接器 /SUBSYSTEM 标志从 WINDOWS 更改为 CONSOLE。
-
@ChrisBecke,我正在编写一个控制台应用程序。
-
在 VS2010 上对我有好处......在一个空项目上测试。
-
What is an undefined reference/unresolved external symbol error and how do I fix it? 和 Unresolved external symbol _WinMain@16 的可能重复项以及大约三打其他人询问 未解析的外部符号 _WinMain@16