使用C模块的Python执行顺序
我正在尝试学习python,遇到了一些奇怪的行为。我正在试验ctypes和一个自制的(非常简单的)DLL 这是我正在尝试运行的Python脚本:使用C模块的Python执行顺序,python,ctypes,Python,Ctypes,我正在尝试学习python,遇到了一些奇怪的行为。我正在试验ctypes和一个自制的(非常简单的)DLL 这是我正在尝试运行的Python脚本: from ctypes import * myLib = CDLL("libDlltest") myLib.hello() myLib.goodbye() print 'I am a line' myLib.goodbye() 我已经根据《根据指南构建库》配置了eclipse,当它不起作用时,我使用gcc在cygwin中构建了它 hello()和
from ctypes import *
myLib = CDLL("libDlltest")
myLib.hello()
myLib.goodbye()
print 'I am a line'
myLib.goodbye()
我已经根据《根据指南构建库》配置了eclipse,当它不起作用时,我使用gcc在cygwin中构建了它
hello()和再见()实现为
EXPORT void hello(void) {
printf ("Hello\n");
}
EXPORT void goodbye(void) {
puts ("Goodbye");
}
(其中导出是一个宏,您可以在上面的指南中了解更多)
然而,当我从程序中得到的输出是:
I am a line
Hello
Goodbye
Goodbye
如果您没有注意到,打印输出的顺序不正确。
从库函数打印的文本在程序完成执行之后或之前出现,而python“print”打印的文本显示在第一位,尽管它被称为第二位
我无法想象这是我想要的行为。我可能是这里做错了什么的人,所以:
- 我可能做错了什么
- 有没有办法解释这种行为