簡體   English   中英

Linker 使用 directX 和 Visual Studio 2010 的錯誤

[英]Linker Errors using directX and Visual Studio 2010

因此,我已經為此工作了兩個小時的大部分時間,盡管我似乎遵循互聯網上每個論壇/指南的確切說明,但在嘗試將 directX 與 Visual Studio 2010 一起使用時,我仍然遇到 linker 錯誤。

這是我開始的代碼:

#include <D3DX10.h>  
#include <iostream>   
using namespace std;

ostream& operator<<(ostream& os, D3DXVECTOR3& v){  
      os << "(" << v.x << ", " << v.y << ", " << v.z << ")\n";     
      return os; 
}

int main (){  
    return 0;  
}

我下載並安裝了 SDK,並在項目配置屬性中手動設置了適當的包含和庫目錄。 我還設置了額外的 linker 輸入依賴項:

d3dx10.lib
d3dx10d.lib

但是,我在編譯時仍然收到以下錯誤:

1>MSVCRTD.lib(crtexew.obj): 錯誤 LNK2019:在 function _ _tmainCRTStartup 中引用的未解析外部符號 WinMain@16

1>C:\Users\Ben\Documents\Visual Studio 2010\Projects\DX Practice\Debug\DX Practice.exe: 致命錯誤 LNK1120: 1 unresolved externals

任何和所有的幫助表示贊賞。

編輯:將 int main() 更改為 int WinMain()。 新錯誤:

1>c:\users\ben\documents\visual studio 2010\projects\dx practice\dx practice\main.cpp(10): 警告 C4007: 'WinMain': must be '__stdcall'

1>c:\users\ben\documents\visual studio 2010\projects\dx practice\dx practice\main.cpp(10): error C2731: 'WinMain': function 不能重載

1> c:\users\ben\documents\visual studio 2010\projects\dx practice\dx practice\main.cpp(10):參見“WinMain”聲明

EDIT2:想通了-

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

謝謝大家的幫助:)

除非您在 Visual Studio 中使用特殊設置,否則窗口可執行文件以WinMain function 開頭,而不是常規的main function。 因此,您應該創建一個控制台應用程序,使用WinMain ,或者使用設置來使用常規main function。

請注意,實際創建 windows 不需要從WinMain開始。 這只是一個 Visual Studio 約定。

使用常規main的選項位於 Project Settings 對話框中的“Linker->Advanced”下。 它被稱為“入口點”,要使用常規主程序,您可以使用“mainCRTStartup”作為值。


如果您堅持使用WinMain ,那么您需要正確定義它:

int WINAPI WinMain( HINSTANCE   hInstance,          // Instance
                   HINSTANCE    hPrevInstance,      // Previous Instance
                   LPSTR        lpCmdLine,          // Command Line Parameters
                   int          nCmdShow)           // Window Show State

如果您包含 Windows 標頭,則 linker 希望您提供WinMain function,而不是常規main WinMain 入口點提供特定於 Windows 的數據,例如HINSTANCE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM