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 接口
[解决办法]
没看出来问题。。
单步调试看看?
[解决办法]
内存管理模式的问题。