【发布时间】:2011-07-20 17:03:07
【问题描述】:
因此,我已经为此工作了两个小时的大部分时间,尽管我似乎遵循互联网上每个论坛/指南的确切说明,但在尝试将 DirectX 与 Visual 结合使用时,我仍然遇到链接器错误工作室 2010。
这是我开始的代码:
#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,并在项目配置属性中手动设置了适当的包含和库目录。我还设置了额外的链接器输入依赖项:
d3dx10.lib
d3dx10d.lib
但是,我在编译时仍然收到以下错误:
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol WinMain@16 referenced in function __tmainCRTStartup
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' : 函数不能重载
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)
感谢大家的帮助:)
【问题讨论】:
-
我从来没有说过
WinMain是按照main的方式定义的。 -
为什么首先需要使用
WinMain?请保留它main。更改链接器设置:Linker->System->SubSystem
标签: c++ visual-studio-2010 linker directx