gpt4 book ai didi

c++ - Class' Struct 在头文件中的函数声明和 cpp 中的定义。 lnk2019 在单独的库中使用函数时

转载 作者:行者123 更新时间:2023-11-28 05:19:52 31 4
gpt4 key购买 nike

以下将构建良好。当我尝试使用不同库中的函数时,出现链接器错误。

OtherClass.obj : error LNK2019: unresolved external symbol "public: float __cdecl myClass::myClassStruct::myConvoludedFunction(int,int)" (?myConvoludedFunction@myClassStruct@myClass@@QEAAMHH_N@Z) referenced in function "public: __cdecl myNamespace::OtherClass::OtherClassFunc(class myNamespace::Something &)" (??0OtherClass@myNamespace@@QEAA@AEAVDtDe@1@@Z)

标题:

   class MY_EXPORT_MACRO myClass
{
public:
myClass();
~myClass();
struct myClassStruct
{
int var1
int var2
float myConvoludedFunction(int,int);
}
}

cpp

#include "myClass.h"
myClass::myClass()
{
//something initialisy
}

myClass::~myClass()
{
//something destructiony
}

float myClass::myClassStruct::myConvoludedFunction(int a, int b)
{
//Something convoluded and secret
return 0;

}

在实际代码中,类中定义了许多结构。所以我尝试让它们成为具有公共(public)成员和成员函数的所有嵌套类。类似的事情:在单独的库中使用函数时,库构建,lnk2019。 myClass 中的其他函数工作正常。

它的用法是这样的:

#include myClass.h
namespace myNameSpace
{
OtherClass::OtherClassFunc(Something & athing)
{
myClass * object = new myClass();

myClass::myClassStruct aStruct;

FunctionThatInitialisesStruct( aStruct);

aStruct.someConvoludedFunction(1,2);

}
}

我正在做的事情是否明显错误?单独声明结构函数定义不是标准的吗?

最佳答案

您还需要为 myClassStruct 导出/导入符号。

使用:

struct MY_EXPORT_MACRO myClassStruct { ... };

关于c++ - Class' Struct 在头文件中的函数声明和 cpp 中的定义。 lnk2019 在单独的库中使用函数时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41732078/

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