dll导出潜在错误

时间:2016-01-12 01:37:45

标签: c++ windows

我从一个dll中导出了一个继承自std::string的类。 我在另一个项目中使用它,但是有一个编译错误

  

错误5错误LNK2005:" public:__ cdecl std :: basic_string,class std :: allocator> :: ~basic_string,class std :: allocator>(void)" (?? 1?$ basic_string @ DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ QEAA @XZ)已在tps_frame.obj中定义J:\ ciplan_workstation \ build \ app \ tpsUtilsd.lib(tpsUtilsd.dll)

我不确定问题是由dll还是lib引起的。到现在为止,我还没有找到原因。

代码如下:

// line_string.h
#include <string>
#include <iostream>
class __declspec(dllexport) line_string : public std::string
{
     friend std::istream& operator>>(std::istream& is, line_string& str);
     public:
     inline operator std::string&() { return *this; }
};

 // line_string.cpp
 #include "line_string.h"
 std::istream& operator>>(std::istream& is, line_string& str)
 {
     std::getline(is, static_cast<std::string&>(str));
     return is;
 } 

0 个答案:

没有答案