gpt4 book ai didi

c++ - 可能的类/析构函数设置问题,收到错误消息 'unresolved external symbol'

转载 作者:太空宇宙 更新时间:2023-11-04 11:27:20 24 4
gpt4 key购买 nike

编辑: 我认为我的问题是因为我从一个 .exe 项目调用我的 FacePoint 类,而 FacePoint 实际上位于一个 .dll 项目中,两者都在同一个解决方案中。有解决这个问题的想法吗?


我有一个名为 FacePoint 的类,它获取和设置面部特征的 X 和 Y 值。

这是 FacePoint.h:

 #pragma once
class FacePoint
{
public:
FacePoint(void);
FacePoint(int X, int Y);

void FacePoint::SetX(int X);
void FacePoint::SetY(int Y);
void FacePoint::SetXY(int X, int Y);

int FacePoint::GetX();
int FacePoint::GetY();

~FacePoint(void);

private:
int coordX;
int coordY;
};

...和 ​​FacePoint.cpp:

#include "StdAfx.h"
#include "FacePoint.h"

FacePoint::FacePoint(void)
{
coordX = 0;
coordY = 0;
}

FacePoint::FacePoint(int X, int Y)
{
coordX = X;
coordY = Y;
}

void FacePoint::SetX(int X){ coordX = X; }

void FacePoint::SetY(int Y){ coordY = Y; }

void FacePoint::SetXY(int X, int Y)
{
coordX = X;
coordY = Y;
}

int FacePoint::GetX(){ return coordX; }

int FacePoint::GetY(){ return coordY; }

FacePoint::~FacePoint(){}

这对我来说似乎没问题,但是当我尝试实现 FacePoint 对象的 vector 时,如下所示:

    std::vector<FacePoint> point;
result = GetFeaturePoints(pHandle, &point);
int x = 0;
int y = 0;
for(int p = 0; p < point.size(); p++)
{
x = point[p].GetX();
y = point[p].GetY();
}

我得到以下编译时错误:

Error 37 error LNK1120: 3 unresolved externals

Error 36 error LNK2001: unresolved external symbol "public: __thiscall FacePoint::~FacePoint(void)" (??1FacePoint@@QAE@XZ)

Error 35 error LNK2001: unresolved external symbol "public: int __thiscall FacePoint::GetX(void)" (?GetX@FacePoint@@QAEHXZ)

Error 34 error LNK2001: unresolved external symbol "public: int __thiscall FacePoint::GetY(void)" (?GetY@FacePoint@@QAEHXZ)

我不确定为什么会这样,但从错误消息来看,我怀疑这与我的析构函数有关?...

我四处搜索,大多数问题都与缺少构造函数/析构函数定义有关。据我所知,我的构造函数似乎很好,错误消息似乎暗示了析构函数。我唯一能想到的是我缺少一个破坏 int X 和 int Y 的析构函数,但我认为原语不需要那个?...

感谢任何帮助。谢谢!!


编辑: 所以我忘了在我的主程序中#include "FacePoint.h"(我在其中创建 FacePoint 的 vector )。我在其中添加了它,但收到了此编译时错误消息:

Error 4 error LNK2019: unresolved external symbol "public: __thiscall FacePoint::~FacePoint(void)" (??1FacePoint@@QAE@XZ) referenced in function "public: void * __thiscall FacePoint::`scalar deleting destructor'(unsigned int)" (??_GFacePoint@@QAEPAXI@Z)

伙计们,有什么想法吗?谢谢!

最佳答案

看起来 FacePoint.cpp 不是您项目的一部分。这意味着链接器无法找到实现这些功能的代码主体。

关于c++ - 可能的类/析构函数设置问题,收到错误消息 'unresolved external symbol',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26173637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com