[python] py2exe dll export

slush slush na centrum.cz
Pátek Květen 30 18:28:50 CEST 2008


Zdravim,

snazim se uz par dni rozchodit binding mezi jednou Win aplikaci a Pythonem.
Aplikace podporuje system pluginu na zaklade DLL knihoven (nacita DLL
knihovny a ocekava funkce s urcitymi jmeny).

Vymyslel jsem dva postupy, ale ani u jednoho jsem nebyl dostatecne uspesny:
a) Puvodni zamer byl udelat v Ccku skeleton DLL knihovny a v ni pomoci
elmeru (http://elmer.sourceforge.net/) zapouzdrit python kod. To temer
fungovalo. Povedlo se mi zkompilovat Cckovy kod do DLL a zavolat ho jako
plugin, stejne tak se mi povedlo rozchodit Elmer tak, ze mi (pod Linuxem)
generoval adekvatni Cckovy kod, ktery by slo pouzit v te DLL kostre. Narazil
jsem ale na problem, ze nevim, jak zkompilovat kod Elmeru pod Windows,
protoze Elmer je podporovany jen na Linuxovych kompilatorech :-). Kdybyste
nekdo vedel...

b) Druhy postup predpoklada, ze jsem schopny pomoci py2exe vytvorit DLL
knihovnu primo z cisteho python kodu. I zde jsem byl uspesny a povedlo se mi
zkompilovat DLL knihovnu. Kdyz se ale podivam na exporty, ktere ta knihovna
ma, vidim tam pouze zakladni DllRegisterServer, DllGetClassObject a dalsi,
ktere ma kazdy COM DLL. Hloubam tady nad tim uz kolik hodin, Google moc
nepomohl (asi to moc lidi nepotrebuje) a nevim, jak tam dostat sve vlasni
exporty. Zajimave je, ze uvnitr kodu te DLL knihovny existuje retezec
"Vysledek", takze to ten skript my_com_server.py (viz. priloha) s funkcemi
obsahuje.

Jelikoz predpokladam, ze v bode b) najdu vice lidi, kteri s tim maji nejakou
zkusenost, prikladam ukazkovy setup.py, ktery mi generuje DLL kod (a ve
kterem je zrejme neco spatne).

Pozn: Priznam se, ze z py2exe nejsem moc moudry. Predpokladal jsem, ze class
Target je prave ona class, jejiz funkce jsou exportovany v DLLku (proto jsem
tam vytvoril nejake funkce). Pak me ale zmatlo, ze py2exe vyzadoval
existenci nejakeho modulu, tak jsem vytvoril jeste my_com_server.py, ktery
opet obsahuje jakousi prazdnou tridu s par funkcemi...

Diky za jakoukoliv radu,
Marek
------------- dal¹í èást ---------------
HTML p?íloha byla odstran?na...
URL: http://www.py.cz/pipermail/python/attachments/20080530/dbbede1c/attachment.htm 
------------- dal¹í èást ---------------
Netextová p?íloha byla odstran?na...
Jméno: setup.py
Typ: text/x-python
Velikost: 1115 bytes
Popis: [?ádný popis není k dispozici]
Url : http://www.py.cz/pipermail/python/attachments/20080530/dbbede1c/attachment.py 
------------- dal¹í èást ---------------
Netextová p?íloha byla odstran?na...
Jméno: my_com_server.py
Typ: text/x-python
Velikost: 107 bytes
Popis: [?ádný popis není k dispozici]
Url : http://www.py.cz/pipermail/python/attachments/20080530/dbbede1c/attachment-0001.py 


Další informace o konferenci Python