pydをDependencyWalkerにかけてみる

ところでpydって、Windowsで言えばDLLだよね?

pydはまぁバイナリなわけで、SharedというかDLLというかですよね。
じゃぁWindowsならDependencyWalkerにかけてみましょう。
で、結果がこれ。

そうです。なんと、固有で依存してるのはpython37.dllのみで、
python37.dllは、固有で依存しているバイナリが存在しないようです。
いや、もちろん、動的にLoadLibraryされてたらわかりませんけどね。

とは言え、メインがpythonでうごくわけなので、Python環境が無いところで動くわけではないんだけれども。。。

あと、exportされてるのは、

PyInit_xxxxxxのみ

まぁ、hiraCntl部分はそういうpydなのだから、まぁ、PyInit_xxxxってのがexportされることになるんでしょう。きっと。
でも、理論的には、PyInitだけでもいい気がしますけどね。
そして、データや関数テーブルを引っ張ってくるんだろうと予測できますね。

pydってどうやって作るんですか?

これはたった3行のpyファイルを準備し、

from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize(['ABCD.py']))

そんで、コマンドラインで、こんなことするだけです。

python PY_COMPILE.py build_ext -i --compiler=mingw32 -DMS_WIN64

まぁ、私はMinGW64なのでこんな感じです。
VCの場合はなんかパラメータが必要だったな。たしか。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です