CImg:加载. CImg文件时堆栈溢出

CImg: stack overflow when loading .cimg file

本文关键字:CImg 堆栈 栈溢出 文件 加载      更新时间:2023-10-16

我被一个崩溃难住了。我过去一直能够很好地加载.cim文件。使用cim .save()函数保存这些文件。路径如下:

"C:\NionProjects\TestEnvironment\Data\NionCCD\NionCCD1010Plugin\Dark_ExpTimeus=121536_Bin=1_DualReadout=1.cimg"

(没有空格)

我在这里得到一个堆栈溢出:

NionCCD1010_x64.dll!cimg_library::CImgList<float>::_load_cimg(_iobuf * const file, const char * const filename) Line 45175  C++

用一个简单的独立DLL加载这个图像工作得很好-所以图像数据本身似乎是OK的。

cmg .h包含在本系统的多个DLL中。这可能是混淆的原因吗?对我来说,调用堆栈看起来没问题:

NionCCD1010_x64.dll!__chkstk()  Unknown
NionCCD1010_x64.dll!cimg_library::CImgList<float>::_load_cimg(_iobuf * const file, const char * const filename) Line 45175  C++
NionCCD1010_x64.dll!cimg_library::CImg<float>::load_cimg(const char * const filename, const char axis, const float align) Line 38130    C++
NionCCD1010_x64.dll!cimg_library::CImg<float>::load(const char * const filename) Line 36485 C++

还有什么我没注意到的吗?

这是一个转移注意力的问题,可能是由于托管代码。我不够小心,在本地编译的东西和管理的东西之间产生了一些混淆。当我删除了强制事物为本机的尝试(#pragma managed(push,off))时,当崩溃时,