我正在创建这个类:
当我编译库时,没有出现错误,但是当我在最终项目中使用我的库时,出现了以下错误:
///> MyObject.h file
class __declspec(dllexport) CMyObject
{
public:
int m_Intero;
public:
CMyObject();
~CMyObject();
public:
friend std::wifstream& operator>>(std::wifstream& is, CMyObject& eprt);
}
///> MyObject.cpp
std::wifstream& operator>>(std::wifstream& is, CMyObject& myobj)
{
if (is.is_open())
///> Input operations.
return is;
}
当我编译库时,没有出现错误,但是当我在最终项目中使用我的库时,出现了以下错误:
LNK2019 unresolved external symbol reference "class std::basic_ifstream<wchar_t,struct std::char_traits<wchar_t> > & __cdecl operator>>(...) in function "public: void __thiscall ...
我想我需要以某种方式指定我的operator>>函数需要被导出。
我应该如何修改我的代码?
CMyObject
在DLL和DLL客户端(主要是EXE)中是相同的?如果DLL发生更改,并且还更改了大小(或vptr表),那怎么办?如果DLL和客户端不是同一构建套件的一部分,则导出类是不正确的。 - Ajay