主程序中有一个方法void GetSub(std::vector<tstring> &subs)
{
tstring str = "1";
subs.push_back(str);
str = "2";
subs.push_back(str);
str = "3";
subs.push_back(str);
}dll中通过接口函数得到GetSub的地址,然后调用,结果出错。LINK* m_Link;
PLUGIN_EXPORT int Load(LINK* link)
{
m_Link = link;
}void OnInitDialog()
{
std::vector<tstring> &subs;
m_Link->GetSub(&subs);
.......
} //出错看出错提示是subs Destroy失败,为什么?如何解决?
{
tstring str = "1";
subs.push_back(str);
str = "2";
subs.push_back(str);
str = "3";
subs.push_back(str);
}dll中通过接口函数得到GetSub的地址,然后调用,结果出错。LINK* m_Link;
PLUGIN_EXPORT int Load(LINK* link)
{
m_Link = link;
}void OnInitDialog()
{
std::vector<tstring> &subs;
m_Link->GetSub(&subs);
.......
} //出错看出错提示是subs Destroy失败,为什么?如何解决?
m_Link->GetSub(subs); // 去掉 &
{
std::vector <tstring> subs;
m_Link->GetSub(subs);
.......
} //出错
void GetSub(std::vector <tstring> &subs)
{
tstring str = "1";
subs.push_back(str);
str = "2";
subs.push_back(str);
str = "3";
subs.push_back(str);
}
是在DLL堆中分配内存。
既然GetSub是在DLL堆中分配内存,subs又是在dll销毁,应该没问题啊???
http://topic.csdn.net/u/20080627/10/8508d60f-08d6-4744-b20e-18ee667f3bfa.html?208716329