【问题标题】:CImg: stack overflow when loading .cimg fileCImg:加载 .cimg 文件时堆栈溢出
【发布时间】:2015-07-23 20:20:07
【问题描述】:

我被这里的崩溃难住了。我过去能够很好地加载 .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++

还有其他我遗漏的注意事项吗?

【问题讨论】:

  • 构建设置可能不匹配。

标签: c++ stack-overflow cimg


【解决方案1】:

这是一个红鲱鱼,可能是由于托管代码。我不够小心,在编译为本机的东西和其他管理的东西之间发生了一些混淆。当我取消了强制事物原生化的尝试(#pragma managed(push,off)),然后在离开时崩溃。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多