【紧急求助】标准库basic_string的派生类无法在dll中使用
我从标准库basic_string派生了一个类,如下:
template <class _Elem, class _Traits, class _Ax>
class basic_string_ex
: public basic_string <_Elem, _Traits, _Ax>
...
在exe工程中使用没有问题。
在dll工程中使用编译时总报错,大意是basic_string的一个静态成员npos未定义。
当我显示定义npos时,又报错npos重定义。
不知这一问题该如何解决,谢谢大家。
[解决办法]
贴代码。
另外,从string派生不是个好主意。
[解决办法]
static const size_type npos = -1;
npos是basic_string的一个typedef,在头文件 <string> 中
[解决办法]
#include "iostream "
using namespace std;
template <class _Elem, class _Traits, class _Ax>
class basic_string_ex
: public basic_string <_Elem, _Traits, _Ax>
{
};
int main()
{
basic_string_ex <char, char_traits <char> , allocator <char> > a;
return 0;
}
可以啊,不过没在dll里试
[解决办法]
无法解决外部应用,那就是库没包含吧?
[解决办法]
DLL貌似不可以包含模板吧,知道的朋友说说看