编辑::这似乎是Visual Studio 2013的一个错误。我在下面发布了答案。
由于某些我无法理解的原因,我无法创建我的类的非指针变量 LineBuffer 。我的代码中有很多类使用相同的格式,但它们可以工作。我尝试更改名称,因为我认为类名可能在别处使用但仍然失败。我错过了一些简单的事吗?在尝试解决此问题的最后2个小时内,我找不到拼写错误吗?这实际上让我很头疼。这里的任何帮助将非常感谢!
class TestClass
{
LineBuffer lineBuffer;
void LoadLine()
{
lineBuffer = LineBuffer();
}
};
我得到的错误如下:
错误3错误LNK1120:2个未解析的外部E:\ SoreTooth \ Development \ TestProjects \ GraphicsDev-Test \ Debug \ GraphicsDev-Test.exe 1 1 GraphicsDev-Test
错误2错误LNK2019:未解析的外部符号“__declspec(dllimport)public:__ thishisall LineBuffer ::〜LineBuffer(void)”(__ imp _ ?? 1LineBuffer @@ QAE @ XZ)在函数__unwindfunclet $ ?? 0TestClass @@ QAE中引用@XZ $ 10 E:\ SoreTooth \ Development \ TestProjects \ GraphicsDev-Test \ GraphicsDev-Test \ main.obj GraphicsDev-Test
错误1错误LNK2019:未解析的外部符号“__declspec(dllimport)public:__ thistall LineBuffer :: LineBuffer(void)”(__ imp _ ?? 0LineBuffer @@ QAE @ XZ)在函数“public:__thiscall TestClass :: TestClass”中引用( void)“(?? 0TestClass @@ QAE @ XZ)E:\ SoreTooth \ Development \ TestProjects \ GraphicsDev-Test \ GraphicsDev-Test \ main.obj GraphicsDev-Test
LineBuffer.h类的代码:
#ifndef _LineBuffer_
#define _LineBuffer_
#include "GraphicsManagement_API.h"
class GraphicsManagement_API LineBuffer
{
public:
LineBuffer();
~LineBuffer();
};
#endif
LineBuffer.cpp的代码:
#include "LineBuffer.h"
LineBuffer::LineBuffer()
{
}
LineBuffer::~LineBuffer()
{
}
因为我知道你会问,GraphicsManagement_API.h的代码:
#ifndef _GraphicsManagement_API_
#define _GraphicsManagement_API_
#include <d3d10.h>
#include <D3DX10.h>
#ifdef _GraphicsManagement_API_EXPORTS_
#define GraphicsManagement_API __declspec(dllexport)
#else
#define GraphicsManagement_API __declspec(dllimport)
#endif
#endif
但这恰好可行
class TestClass
{
LineBuffer * lineBuffer;
void LoadLine()
{
lineBuffer = new LineBuffer();
}
};
答案 0 :(得分:1)
如果碰巧遇到此问题,请通过删除相关文件然后创建全新文件来重新创建相关文件。在我的情况下,当我创建 LineBuffer.cpp 时,我不小心将其命名为 LineBuffer.ccp ,显然这不会构建,Visual Studio也不会将其识别为。 cpp < / strong>文件。我想我可以使用Visual Studio Solution Explorer重命名该文件。显然,这并不像人们期望的那样有效。我不得不删除整个文件并创建一个新文件。一旦我这样做,它就成功建立了。我不确定这是否是Visual Studio 2013错误或者是否是设计错误。无论哪种方式,这都是适合我的解决方案。