运行带有dll接口含有string的程序中debug assert failed 错误
1.一个原则:
某个模块中分配的空间就应该由它来释放!比如说在dll中分配的空间就应由这个dll来释放,而不应该有main来释放,因为dll 中用来分配空间的环境可能和main中用来分配的环境不一样。关于这一点window核心编程中的dll里面进行了讲解。
2.mian 中的如下语句:
//pi是指向dll提供的一个接口的指针。
dll中是如下实现addElement函数的:
bool *****::addElement(string elementName,string elementValue)
{
}
3.解决方案:
对于上面这种情况我们只要把dll的改成引用就可以了:如下
bool *****::addElement(string &elementName,string &elementValue)