Visual Studio Express 2013 错误

visual studios express 2013 errors

每次我制作新程序时都会在编译时出现此错误,以前我使用 2012 并且从未遇到过此问题但现在我每次都看到这个:

错误:

Error   2   error LNK2019: unresolved external symbol 
"public: __cdecl lonework::App::App(void)" (??0App@lonework@@Q$AAA@XZ)
referenced in function "public: void __thiscall <lambda_b6bf150325cab1ba448790bcac21fea0>::operator()(class Windows::UI::Xaml::ApplicationInitializationCallbackParams ^)
const " (??R<lambda_b6bf150325cab1ba448790bcac21fea0>@@QBEXP$AAVApplicationInitializationCallbackParams@Xaml@UI@Windows@@@Z)    C:\Users\Logan\Documents\Visual Studio 
    2013\Projects\lonework\lonework\lonework.Windows\XamlTypeInfo.g.obj lonework.Windows

当前正在处理的代码:

#include <pch.h>
#include <conio.h>
#include <stdio.h>
#include <Windows.h>

int yes();
int no();

int main()
{
    char choice;
    printf("Think of a number between one and ten\n");
    Sleep(2000);
    printf("Got it yet?\n Y/N ");
    scanf_s("%c", &choice,1);
    if (choice == 'y' || choice == 'Y')
    {
        printf("That's good");
        yes();
    }
    else if (choice == 'n' || choice == 'N')
    {
        printf("Are you really that slow");
        no();
    }
    getchar();
    return 0;
}
int yes()
{
    printf("Good for you, keep thinking about it...\n");
    printf("Now think of another one, a different one\n Got it?\n I'll assume yes, sounds good.\n     Now I'll tell you your number.\n");
    printf("...\n");
    Sleep(2000);
    printf("...\n");
    Sleep(2000);
    printf("Ahem, 3 and 7");
    return 0;
}
int no()
{
    printf("Alright, back to the top.\n");
    main();
    return 0;
}

确保您 select 在创建新项目时是一个空项目或 C++ 控制台应用程序,而不是托管的 C++ 应用程序。

对于此代码,您不需要 include pch.h,实际上 VS 没有附带这样的文件。

有两种方法可以更正此问题

1.) 在 VS 中点击

  1. 为您的项目命名
  2. 创建一个新的 C++ 项目,
  3. select Win32 Application,
  4. 取消选中 precompiled header,
  5. 取消选中 Security Development Lifecycle (SDL) checks,
  6. 点击完成
  7. 将创建一个新项目,并打开包含您的项目名称的 cpp 文件。
  8. 复制并粘贴此源代码并删除行 #include <pch.h> 现在你可以编译并运行它了。

2.)在包含此项目的 VS 解决方案中:

  1. 在解决方案资源管理器中右键单击项目名称

  2. 单击Properties单击左侧的C/C++选项卡

  3. 点击预编译headers

  4. Precompiled headers 列的右侧,将 use 更改为 Not Using Precompiled Headers

  5. 点击应用

  6. 现在,如果您使用 Visual Studio 社区,您将拥有一个文件 名为“AssemblyInfo”,右键单击该文件并删除该文件 select删除

  7. 现在删除第一行#include <pch.h>

    编译并运行它

实际上你是在Visual C++中编译C代码,所以当你创建一个新项目时,你必须取消选中SDL检查(安全开发生命周期)

另一种简单的方法是创建一个新的 blank C++ project,在解决方案资源管理器上右键单击 source files。单击 add,单击 new item,select C++ File,现在将代码粘贴到其中,如果您是,运行 it.This 是最简单的方法开始新项目。