2014-11-04 37 views
1

我正在開發一些python系統,通過ctypes訪問一些核心dll。我已經將問題簡化爲這種情況:執行一個加載(無需調用)兩個dll的模塊,其中一個調用printf - 此錯誤將在退出時發生。當ctypes dll調用printf時python終止錯誤

此應用程序已請求運行時終止它在 不尋常的方式。請聯繫應用程序的支持團隊獲取更多 信息。

我的環境:
- Windows 7的SP1 - 的Python 2.7.8 - MinGW的v 3.20

這個測試用例是改編自一個教程使用MinGW寫的dll:

/* add_core.c */ 
__declspec(dllexport) int sum(int a, int b) { 
    return a + b; 
} 

/* sub_core.c */ 
#include <stdio.h> 
__declspec(dllexport) int sum(int a, int b) { 
    printf("Hello from sub_core.c"); 
    return a - b; 
} 

prog.py

import ctypes 
add_core_dll = ctypes.cdll.LoadLibrary('add_core.dll') 
add_core_dll = ctypes.cdll.LoadLibrary('sub_core.dll') 
> make 
gcc -Wall -O3 -g -ansi -c add_core.c -o add_core.o 
gcc -g -L. -ansi    -shared add_core.o -o add_core.dll 
gcc -Wall -O3 -g -ansi -c sub_core.c -o sub_core.o 
gcc -g -L. -ansi    -shared sub_core.o -o sub_core.dll 

>python prog.py 

This application has requested the Runtime to terminate it in an unusual way. 
Please contact the application's support team for more information. 

並彈出消息對話框以達到相同的效果:「python.exe已停止工作...」。

請注意,程序按預期執行併產生正常輸出。終止這個錯誤只是我想擺脫的一大麻煩。

回答

0

同樣的情況爲: Windows 7企業,SP1 的Python 2.7.11 的mingw32-G ++ EXE 5.3.0