次はうまくいくでしょう。別のライブラリで関数を使用しようとすると、リンカエラーが発生します。クラス 'ヘッダーのStructの関数宣言とcppの定義。 lnk2019別のlibの関数を使用する場合
OtherClass.obj : error LNK2019: unresolved external symbol "public: float __cdecl myClass::myClassStruct::myConvoludedFunction(int,int)" ([email protected]@[email protected]@[email protected]) referenced in function "public: __cdecl myNamespace::OtherClass::OtherClassFunc(class myNamespace::Something &)" ([email protected]@@[email protected]@[email protected]@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;
}
クラスで定義された構造体の数があります。そこで、パブリックメンバーとメンバー関数を使ってネストされたクラスを作成しようとしました。同様のこと:libビルド、lnk2019別のlibの関数を使うとき。 myClassの他の関数は正常に動作します。
それはこのように使われている:
#include myClass.h
namespace myNameSpace
{
OtherClass::OtherClassFunc(Something & athing)
{
myClass * object = new myClass();
myClass::myClassStruct aStruct;
FunctionThatInitialisesStruct(aStruct);
aStruct.someConvoludedFunction(1,2);
}
}
は、私はそれは明らかに間違ってやっているものはありますか?別々に宣言された構造体関数定義を持つことは標準ではありませんか?
hurpdurpのタイプミス。私は、取り組んでいる多くのコードを削除しました。一定。 – codeMetis