Я пытаюсь изучить python и столкнулся с каким-то странным поведением. Я экспериментирую с ctypes и самодельной (очень простой) DLL.Порядок выполнения Python с использованием модуля C
Это Python скрипт я пытаюсь запустить:
from ctypes import *
myLib = CDLL("libDlltest")
myLib.hello()
myLib.goodbye()
print 'I am a line'
myLib.goodbye()
Я настроил затмение в соответствии построить библиотеку в соответствии с this руководства, а когда это не сработало, я построил его в Cygwin с НКА.
привет() и до свидания() реализуются как
EXPORT void hello(void) {
printf ("Hello\n");
}
EXPORT void goodbye(void) {
puts ("Goodbye");
}
(где экспорт макрос, который вы можете прочитать больше в приведенном выше руководстве)
Тем не менее, он начинает получать странные, когда выход из программы:
I am a line
Hello
Goodbye
Goodbye
Если вы не заметили, распечатки находятся не в правильном порядке. Текст, напечатанный из функций библиотеки, появляется после или до того, как программа завершит выполнение, а текст, напечатанный пифатом «печать», появится первым, несмотря на то, что он называется вторым.
Я не могу представить, чтобы это было предполагаемым поведением. Я, вероятно, тот, кто делает что-то неправильно здесь, так:
- Что я могу делать неправильно?
- Есть ли способ объяснить это поведение?
Спасибо, что решил! – Nubsis