我想链接为WINDOWS而不是CONSOLE:LNK 2019和LNK 1120

时间:2015-11-24 06:40:34

标签: c++ directx-11

我正在学习使用Direct3D 11.0进行3D游戏编程的DirectX11,我遇到了麻烦。在第4章,示例源不会运行。我不知道为什么会这样,以及如何解决它。

  • 我正在使用UNICODE。
  • 在Linker - >系统,WINDOWS。在C / C ++ - > PreProcessor,WINDOWS。
  • 在Linker - >高级,入口点为空白。

这是源代码。

#include "d3dApp.h"
#include <Windows.h>

class InitDirect3DApp : public D3DApp
{
public:
    InitDirect3DApp(HINSTANCE hInstance);
    ~InitDirect3DApp();

    bool Init();
    void OnResize();
    void UpdateScene(float dt);
    void DrawScene(); 
};

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE prevInstance,
                   PSTR cmdLine, int showCmd)
{
    // Enable run-time memory check for debug builds.
#if defined(DEBUG) | defined(_DEBUG)
    _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
#endif

    InitDirect3DApp theApp(hInstance);

    if( !theApp.Init() )
        return 0;

    return theApp.Run();
}

InitDirect3DApp::InitDirect3DApp(HINSTANCE hInstance)
: D3DApp(hInstance) 
{
}

InitDirect3DApp::~InitDirect3DApp()
{
}

bool InitDirect3DApp::Init()
{
    if(!D3DApp::Init())
        return false;

    return true;
}

void InitDirect3DApp::OnResize()
{
    D3DApp::OnResize();
}

void InitDirect3DApp::UpdateScene(float dt)
{

}

void InitDirect3DApp::DrawScene()
{
    assert(md3dImmediateContext);
    assert(mSwapChain);

    md3dImmediateContext->ClearRenderTargetView(mRenderTargetView, reinterpret_cast<const float*>(&Colors::Blue));
    md3dImmediateContext->ClearDepthStencilView(mDepthStencilView, D3D11_CLEAR_DEPTH|D3D11_CLEAR_STENCIL, 1.0f, 0);

    HR(mSwapChain->Present(0, 0));
}

这是错误消息。

error LNK2019 : unresolved external symbol _main referenced in function ___tmainCRTStartup
fatal error LNK1120 : 1 unresolved externals

我在代码底部尝试int main () {},然后运行。但是没有窗口。

我的设置是WINDOWS,但它以CONSOLE身份运行。我不知道为什么。

我在等你的回答。祝你有个美好的一天:)

0 个答案:

没有答案