- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个在 Windows XP SP3 中运行的使用 Boost 1.47.0 的 Visual Studio 2008 C++03 应用程序。
调用 boost::filesystem::create_directories( L"c:\\foo\\bar");
抛出一个 std::bad_alloc
异常。
在输出窗口中,我看到一条调试堆消息:“HEAP[test.exe]:分配大小无效 - CDCDCDCE(超过 7ffdeff)”
调用堆栈显示 boost.filesystem 创建了一个新的语言环境和 Microsoft 标准库文件 xlocale 第 309 行中最后可见的代码行。
msvcp90.dll!std::_Allocate<char>() + 0x17 bytes
msvcp90.dll!std::allocator<char>::allocate() + 0xf bytes
msvcp90.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Copy() + 0x70 bytes
msvcp90.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Grow() + 0x26 bytes
msvcp90.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign() + 0x50 bytes
msvcp90.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::basic_string<char,std::char_traits<char>,std::allocator<char> >() + 0x24 bytes
msvcp90.dll!std::locale::_Locimp::_Locimp() + 0x47 bytes
> test.exe!std::locale::locale<windows_file_codecvt>(const std::locale & _Loc={...}, const windows_file_codecvt * _Facptr=0x00b48f60) Line 309 + 0x69 bytes C++
test.exe!`anonymous namespace'::default_locale() Line 735 C++
test.exe!`anonymous namespace'::path_locale() Line 777 + 0x2a bytes C++
test.exe!boost::filesystem3::path::wchar_t_codecvt_facet() Line 797 + 0x25 bytes C++
test.exe!boost::filesystem3::path::codecvt() Line 388 + 0x5 bytes C++
test.exe!boost::filesystem3::path::path<wchar_t const *>(const wchar_t * begin=0x00b460f8, const wchar_t * end=0x00b46116) Line 162 + 0x5 bytes C++
test.exe!boost::filesystem3::path::parent_path() Line 313 + 0x57 bytes C++
test.exe!boost::filesystem3::detail::create_directories(const boost::filesystem3::path & p={...}, boost::system::error_code * ec=0x00000000) Line 832 + 0x13 bytes C++
test.exe!boost::filesystem3::create_directories(const boost::filesystem3::path & p={...}) Line 318 + 0x29 bytes C++
test.exe!wmain(int __formal=1, int __formal=1) Line 112 + 0xc bytes C++
test.exe!__tmainCRTStartup() Line 583 + 0x19 bytes C
test.exe!wmainCRTStartup() Line 403 C
kernel32.dll!_BaseProcessStart@4() + 0x23 bytes
有人可以建议如何解决这个问题吗?
编辑 我更新到 boost 1.50.0。问题依然存在。
最佳答案
这似乎是一个 known bug在运行 DEBUG 构建时,在 Microsoft 的 std::locale
实现中。据报道,2012 年 6 月。
您收到的有关内存地址 CDCDCDCE 的消息暗示正在访问已删除的内存,如该错误所述。
Microsoft 的网站目前没有描述解决方案,但我建议通过将 L"c:\\foo\\bar"
更改为 "c:\\foo\\bar"
.
关于c++ - boost.filesystem create_directories 抛出 std::bad_alloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12186955/
目前我正在尝试使用std::filesystem。我正在使用 MinGW-W64 GCC 7.1.0 处理 Windows 7 64 位。由于此编译器不支持 std::filesystem,因此我必须
我在使用 boost create_directories() 在远程计算机上的共享文件夹上创建目录时遇到问题。我只有阅读此共享的权限。但是我使用具有完全读写访问权限的用户凭据创建连接。 使用 WNe
当给定不存在带有尾部斜杠的路径作为参数时,GCC(10.0.1)和Clang(11.0.0)/ MSVC(VS 16.4.3)显示出与std::filesystem::create_directori
我正在使用 boost 创建一个目录来放置一些临时文件。 int main( int argc, char* argv[] ) { std::cout << "Current Dir: " <
我正在尝试使用 Boost.Filesystem 创建一个目录(目录可以由用户提供,因此它可能是一个包含嵌套目录的路径;该路径中的所有目录、部分目录或不存在目录都可以启动).当我运行程序时,创建了一个
我想对 boost 文件系统函数 create_directories() 的失败案例进行单元测试,即当 create_directory 失败时。有人可以就如何执行此操作提供任何建议吗?另一个要求是
当我尝试 shell_exec('/home/user/scripts/./script') 时,出现以下错误: terminate called after throwing an instance
我想在Boost 1.7.3中创建一个隐藏目录。当我尝试: boost::filesystem::create_directory("/MyPath/.myFolder"); 它不起作用,什么也不做。
我有一个在 Windows XP SP3 中运行的使用 Boost 1.47.0 的 Visual Studio 2008 C++03 应用程序。 调用 boost::filesystem::crea
所以,我正在使用像这样的简单代码 boost::system::error_code ec; if (!boost::filesystem::create_directory(out_path.par
我是一名优秀的程序员,十分优秀!