タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

ctypesに関するuemuのブックマーク (2)

  • Hyper EstraierのAPIをPythonのctypes経由で呼び出す - HDEラボ

    Python 2.5から、ctypesというライブラリが標準ライブラリに追加されました。このライブラリは、Cの関数をPython用にラッピングしてくれるライブラリで、PythonからCのライブラリ(.soとか.aとか.dllとか、環境による)中の関数を「直接」呼び出すことができます。 似たような仕組みには、SWIGや、PythonのC拡張モジュールなどがありますが、ctypesはそれらの仕組みと比べ、圧倒的に手軽なのが売りです(だと思います)。 たとえば、Python 2.5以上であれば、インタラクティブモード上で、 >>> from ctypes import * >>> libc = CDLL("libc.so.6") >>> libc.puts("hello ctypes") hello ctypes 13 のように、いきなりlibcのputs関数を呼び出すことができます(インタラク

  • #47 (pythonからctypesで任意のDLLの関数を使う。) – mtamaki.com – Trac

    とする。 LoadLibraryで読み込んで、test関数を呼ぶ。 ctypesはデフォルトでは整数を返してしまうので、文字列型にキャストして、それのvalueを見ることで戻り値の文字列を取得できる。ちなみにargtypesを使うもっとエレガントなやり方もある。 たくさん関数を呼ぶときはデコレータとかうまく使うときれいにかけそうな予感がする。 んで、今回のメイン。GetOpenFileNameを読んでみる。 これはいわゆる「ファイルを開くダイアログ」で、GetOpenFileNameを呼ぶだけで表示できるが、GetOpenFileNameにOPENFILENAMEという結構複雑な構造体を渡さないといけない。 しかも、複数選択を有効にしたときは、OPENFILENAMEのlpstrFile変数に、「ディレクトリパス\0ファイル名1\0ファイル名2\0...ファイル名n\0\0」と

  • 1