【问题标题】:using windows.h along with main()使用 windows.h 和 main()
【发布时间】: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

标签: c winapi main


【解决方案1】:

好的,伙计们,我明白了。

Felix Palmen 的建议有效。

... ...我想将其配置为“控制台”应用程序应该可以解决问题。

所以,我所做的是,我将项目的偏好从 WIDOWS 更改为 CONSOLE

【讨论】:

  • 这远非详尽的分析。抱歉,-1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多