1 vc开发动态库
开发环境vc6.0,使用动态库解析文件。
动态库工程A,应用工程B。
A的函数a为bool Get_vecDGI(string epFile, int ID);
在B中调用a出错,把a修改为bool Get_vecDGI(string epFile, int ID);运行无错误。
参考 http://bbs.csdn.net/topics/370217758
解释原因是问题是由于string所使用的缓冲区是在EXE中分配的,而在DLL中需要释放,这种跨模块分配和释放内存的做法是不安全的,VC把它视作错误,在Debug版中设置了检查机制,不允许跨模块释放。用Release版运行应该就不报错了。