2016-06-13 8 views
0

Я строю свое расширение библиотеки x64 python c от x86.fread with fopen64 под MinGW64 убивает процесс

я узнал fread с указателем файла Открывший вступительным словом fopen64 убил процесс питона из-за ошибки APPCRASH из ntdll.dll. Это не происходит при сборке x86 и не происходит, если указатель файла открывается fopen.

Во-первых, я думал, что это произошло из-за ошибки Windows, упомянутой here. Но это не исправить.

Есть ли хорошая практика, чтобы избежать этой проблемы? Я рассматриваю make definition, чтобы выбрать функцию открытия файла witch, чтобы она работала как с x64, так и с x86, но у меня нет никаких замечательных идей для этого.

Моя среда

  • Windows 7 x64
  • Python 2.7.10 x64
  • Numpy 1.11.0
  • MinGW64
+0

Похоже [fopen64 это просто оболочка для FOPEN все равно] (https://github.com/Alexpux/mingw-w64/blob/master/mingw-w64-crt/stdio/fopen64.c). Поэтому вы, вероятно, должны просто использовать fopen. –

+0

Да, я уже проверяю файл include. Но ошибка произошла с 'fopen64', но не с' fopen'. –

+0

Фактическая проблема, вероятно, в другом месте, повреждение памяти или подобное. Но я хочу сказать, что, насколько я могу судить, использование fopen64 не дает ровно ничего, поэтому почему бы просто не использовать fopen? –

ответ

0

В настоящее время я использую следующий код ,

#if defined(_WIN64) 
#define _fopen fopen 
#else 
#define _fopen fopen64 
#endif 

 Смежные вопросы

  • Нет связанных вопросов^_^