visual studio express 2013错误

时间:2015-01-08 04:52:43

标签: c++ visual-studio-2013

每次我制作一个新程序时我都会在编译时遇到这个错误,以前我用的是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;
}

2 个答案:

答案 0 :(得分:1)

确保在创建新项目时选择空项目或C ++控制台应用程序而不是托管C ++应用程序。

答案 1 :(得分:0)

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

有两种方法可以纠正这个

1。)在VS中点击

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

    1. 右键单击解决方案资源管理器中的项目名称
    2. 点击Properties点击左侧的C/C++标签
    3. 单击预编译标题
    4. Precompiled headers colume的右侧,从use更改为Not Using Precompiled Headers

    5. 点击“应用

    6. 现在,如果您使用的是Visual Studio社区,则会有一个文件 命名为“AssemblyInfo”,右键单击并删除该文件 选择删除
    7. 现在删除第一行#include <pch.h>

      编译并运行

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

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