Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取已分配的std::String的CRT? 我有第三方提供的静态库,它将与我的C++(VisualStudio 120工具集)项目集成,这是一个DLL。然后在我的应用程序中使用这个dll //dll side class Foo { // m_name is set from the value returned from 3rd party lib. // m_name = [object in static lib].getName(); std::string getName() { return m_name; } } //application side void main() { Foo* f = new Foo(); f->getName();// application crashes when deallocating string }_C++_Dll_Msvcrt - Fatal编程技术网

如何获取已分配的std::String的CRT? 我有第三方提供的静态库,它将与我的C++(VisualStudio 120工具集)项目集成,这是一个DLL。然后在我的应用程序中使用这个dll //dll side class Foo { // m_name is set from the value returned from 3rd party lib. // m_name = [object in static lib].getName(); std::string getName() { return m_name; } } //application side void main() { Foo* f = new Foo(); f->getName();// application crashes when deallocating string }

如何获取已分配的std::String的CRT? 我有第三方提供的静态库,它将与我的C++(VisualStudio 120工具集)项目集成,这是一个DLL。然后在我的应用程序中使用这个dll //dll side class Foo { // m_name is set from the value returned from 3rd party lib. // m_name = [object in static lib].getName(); std::string getName() { return m_name; } } //application side void main() { Foo* f = new Foo(); f->getName();// application crashes when deallocating string },c++,dll,msvcrt,C++,Dll,Msvcrt,销毁std::string时发生崩溃。我怀疑从第三方库返回的字符串是在不同的C++运行时分配的。如何找到第三方LIB字符串的分配CRT?< /P>混合不同编译器在C++中的实现总是有问题的。即使你设法解决了当前的问题,也可能有相当多的人在等待机会来咬你。。。尝试为您的工具获取适当版本的库,如果没有,尝试获取源代码以自己编译它。您也可以直接向供应商寻求支持。@Aconcagua确实如此。但它们以二进制文件的形式发送,并作为VS2013(根据约定)放置在一个目录中。如果有一种方法可以从语法上找到分配

销毁std::string时发生崩溃。我怀疑从第三方库返回的字符串是在不同的C++运行时分配的。如何找到第三方LIB字符串的分配CRT?< /P>混合不同编译器在C++中的实现总是有问题的。即使你设法解决了当前的问题,也可能有相当多的人在等待机会来咬你。。。尝试为您的工具获取适当版本的库,如果没有,尝试获取源代码以自己编译它。您也可以直接向供应商寻求支持。@Aconcagua确实如此。但它们以二进制文件的形式发送,并作为VS2013(根据约定)放置在一个目录中。如果有一种方法可以从语法上找到分配器,我可以在它们的末尾请求修复。12.0工具-和VS2013?应该是。。。你确定你没有完全不同的问题吗?你调试好了吗?@Aconcagua-Yp。我已经用第三方库的早期版本构建了所有内容,并且所有内容都运行得非常完美。在最新的更新中,只更新了静态库,甚至没有对它们的头进行任何修改。如果有一种方法可以获得字符串分配器运行时版本,那会很有帮助。调试后,我发现字符串在CRT 120中被销毁,但找不到一种方法来获得分配运行时。尽管我更希望编译失败,但他们没有意外地从32位转换到64位构建?