Я пытаюсь получить доступ к некоторому коду C через Python, используя ctypes, поэтому я написал очень простую DLL (как показано ниже), но получил очень странный результат при загрузке DLL и вызове функции.
Вот код C, который я скомпилировал как DLL, используя Open Watcom. Ничего особенного, как вы можете видеть:
#include <stdio.h>
__declspec(dllexport) int sum(int a, int b) {
return (a + b);
}
Вот вывод, когда я вызываю функцию DLL (компилятор Watcom добавляет _ к имени каждого экспорта. Не спрашивайте ...):
Python 3.2.2 (default, Sep 4 2011, 09:51:08) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> from ctypes import cdll
>>> mydll = cdll.LoadLibrary('c:\\dev\\C\\TestDLL\\test.dll')
>>> mydll
<CDLL 'c:\dev\C\TestDLL\test.dll', handle 1cb0000 at 1910a30>
>>> mydll.sum_(8,3)
4451768
>>>
Я получаю тот же вывод независимо от того, какие параметры передаются в функцию ...
Я был бы признателен за то, что какая-то добрая душа указала на ошибку моих путей и избавила меня от страданий. : -)
Заранее спасибо,
Джеймс