CImg: переполнение стека при загрузке файла .cimg

Я в тупике от аварии здесь. Раньше мне удавалось нормально загружать файлы .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++

Есть ли какие-то другие соображения, которые я упускаю?


person msarahan    schedule 23.07.2015    source источник
comment
Возможно несоответствие в настройках сборки.   -  person Captain Obvlious    schedule 23.07.2015


Ответы (1)


Это был отвлекающий маневр, вероятно, из-за управляемого кода. Я был недостаточно осторожен, и возникла некоторая путаница между вещами, скомпилированными как родные, и другими как управляемыми. Когда я удалил свои попытки заставить вещи быть нативными (#pragma manage(push,off)), то произошел сбой, когда их не было.

person Community    schedule 27.07.2015