读书人

dll中接口返回map容器的引用的有关问题

发布时间: 2012-04-22 18:34:46 作者: rapoo

dll中接口返回map容器的引用的问题?
在一个dll中是这样子写接口的:

C/C++ code
map<string ,vector<string> >&  GetFlvResult(){ return m_flvResult; }//m_flvResult为dll中一个类的私有成员,类型    //为map<string ,vector<string> >

在调用dll的程序中,是这样子调用的:
C/C++ code
    map<string,vector<string> > aaa=m_flvdetector->GetFlvResult();    map<string,vector<string> >::iterator itor=aaa.begin();//此处出现问题,错误大概是xtree中copy函数调用失败                       vector<string> &real=itor->second;                         vector<string>::iterator iitor=real.begin();                             


我不知道错误的原因在哪里?
1、是因为dll接口中不能使用map容器作为返回值吗????但是我用引用了呀!!
2、在代码中这样子用是可以的:
string& GetFlvResultString(){ return m_string; }//m_string为dll中一个类的私有成员,类型为string

[解决办法]
纯C 接口

若你真要返回 类, 把dll相应的Lib放入 调用工程一起编译
[解决办法]
[code=C/C++][/code]
。。。纯C 接口

[解决办法]
没看出来问题。。
单步调试看看?
[解决办法]
内存管理模式的问题。

读书人网 >C++

热点推荐