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

CImg: stack overflow when loading .cimg file

我在这里遇到了崩溃。我过去能够很好地加载 .cimg 文件。这些文件使用 CImg.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 加载此图像工作正常 - 因此图像数据本身似乎没问题。

CImg.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)),然后在离开时崩溃。