我正在编写一个小的 DirectX 模型查看器。
我刚刚写完我的场景管理器。
我将永远只有 1 个场景管理器对象,所以我的想法是创建一个“scnManger”类型的全局指针,然后在创建场景管理器对象时设置它。
这将使我可以从我的应用程序的任何地方访问它。
我收到了一个编译错误:
1>shaderViewer.obj : error LNK2005: "class scnManger * sceneManger" (?sceneManger@@3PAVscnManger@@A) already defined in sceneManager.obj
1>C:\Users\Greg\Documents\Visual Studio 2010\Projects\ShaderViewer\Debug\ShaderViewer.exe : fatal error LNK1169: one or more multiply defined symbols found
现在我有 3 个文件
场景管理器.h:
// Our global scene manger variable
scnManger* sceneManger;
shadherViewer.cpp (winMain & 包括 sceneManger.h):
scnManger shaderViewerScnManger;
sceneManger = &shaderViewerScnManger;
场景管理器.cpp(包括场景管理器.h):
我在这里使用我的场景管理器对象的方法来处理各种事情。
首先,我想了解我收到错误的原因,并且也愿意接受有关更好的处理方法的任何建议。我不确定使用这样的全局变量是否是个好主意。