- Ben ithal modülleri kullanmayı deneyin zaman alıyorum bir:Gömme Python - ithal modüllerin
PythonIncl.exe içinde 0x1e089e85 deİşlenmemiş istisna: 0xC0000005: Erişim ihlali okuma konumu 0x00000004.
Hata, PyObject_GetAttrString()
yönteminde gerçekleşir ve belgeler çok yardımcı olmaz. Ayrıca, IBM'den bir Example'daki gibi öğreticiler kullanmayı denedim, ancak her zaman aynı erişim ihlali elde ettim.
Aşağıdakiler, işe yaramıyor gibi görünen öğreticilerin örnek kodudur, burada sorun nedir?
C-Kodu (bir ana dosyası):
#include <Python.h>
int main()
{
PyObject *strret, *mymod, *strfunc, *strargs;
char *cstrret;
Py_Initialize();
mymod = PyImport_ImportModule("reverse");
strfunc = PyObject_GetAttrString(mymod, "rstring");
strargs = Py_BuildValue("(s)", "Hello World");
strret = PyEval_CallObject(strfunc, strargs);
PyArg_Parse(strret, "s", &cstrret);
printf("Reversed string: %s\n", cstrret);
Py_Finalize();
return 0;
}
Python kodu (bir dosya adı verilen reverse.py içinde, aynı klasör):
def rstring(s):
i = len(s)-1
t = ''
while(i > -1):
t += s[i]
i -= 1
return t
kullanıyorum bir XP makine çalıştırıyorum MSVS2008, Python 2.7
Biraz bağlam: Oldukça geniş bir C programında OpenOPC kullanan küçük bir python komut dosyasını gömmeye çalışıyorum ve ikisi arasında veri aktarmak istiyorum. Ancak, temel örneklerle bir kavram kanıtı testinde başarısız oldum.
Bir python'un vücudunu girintilendirmeniz gerektiğini biliyor musunuz? – Griwes
Python'u gömmek yerine Python için bir uzantı yazmak neredeyse her zaman daha güzel ve daha güçlüdür. Bunu yapmak oldukça benzer gözükür, ancak genişletmek için daha iyi bir takım vardır ve gerektiğinde diğer Python araçlarına erişmek daha kolaydır. Gömme ve yaymaya ilişkin bir perspektif için http://twistedmatrix.com/users/glyph/rant/extendit.html adresine bakın. –
evet, eksik girinti hakkında, sadece gönderme sırasında kayboldu, IDE'de var. – Shorkaa