首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-04-22 
dll中接口返回map容器的引用的问题?在一个dll中是这样子写接口的:C/C++ codemapstring ,vectorstring

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 接口

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

热点排行