2016-06-13 9 views
0

私はx64 pythonのCライブラリ拡張をx86から​​ビルドします。MinGW64の下でfopen64のfreadがプロセスをkillします

私はfopen64でオープンしましたファイルポインタでfreadが原因でエラーntdll.dllAPPCRASHのpythonのプロセスを殺した見つけました。 x86ビルドでは発生しません。ファイルポインタがfopenで開かれてもどちらも起こりません。

まず、Windowsのバグhereのために起こったと思いました。しかし、それはそれを修正しませんでした。

この問題を回避する良い方法はありますか?私は魔女のファイルを開く機能を選択するには、x64とx86の両方で動作するように定義することを検討していますが、そうするための素晴らしいアイデアはありません。

私の環境

  • のWindows 7のx64
  • のPython 2.7.10 x64の
  • numpyの1.11.0
  • にMinGW64
+0

(https://github.com/Alexpux/mingw-w64/blob/master/mingw-w64-crt/stdio/fopen64.c)[fopen64はとにかくfopenのための単なるラッパーである]のように見えます。だから、おそらくfopenを使うべきです。 –

+0

ええ、私はすでにインクルードファイルをチェックしています。しかし、エラーは 'fopen64'では発生しましたが、' fopen'では発生しませんでした。 –

+0

実際の問題はおそらく他の場所、メモリの破損などにあります。しかし、私が指摘する限りでは、fopen64を使うのはまったく何もできないので、なぜfopenを使用しないのですか? –

答えて

0

今のところ、私は以下のコードを使用しています。

#if defined(_WIN64) 
#define _fopen fopen 
#else 
#define _fopen fopen64 
#endif 
関連する問題