Pythonでフリー公開されているDLLを使ってみる
ctypes
を使ってDLLの呼び出し方を学ぶ。今回はフリーで公開されているDLLを使ってみる。前回よりも難しかった。
greenhornprofessional.hatenablog.com
使用させてもらったDLLは以下。文字列として書かれた式と変数の値を与えると式通りに計算してくる、というもの。
文字列よりの計算の詳細情報 : Vector ソフトを探す!
結果
式 x+y+zと、変数 x=10, y=2, z=0.1 を与えると、12.1が返ってきた。ちゃんと動いている。
今回はたまたま出来たというのが正直なところ。C/C++を勉強しないとこれよりも複雑なDLLは使えない。
プロトタイプに標準データ型以外の引数が書かれていると絶望的になる…
プログラム
# 31_CallCalcDll_001.py # python 3.8.1 # coding: utf-8 from ctypes import * p_ans = POINTER(c_double) p_siki = POINTER(c_char) lib = cdll.LoadLibrary('CALC11') lib.Num_Form_Calc.argtypes = (p_siki, c_double, c_double, c_double, p_ans) lib.Num_Form_Calc.restype = c_int siki = b"x+y+z" x = 10 y = 2 z = 0.1 ans = c_double() i = c_int() i = lib.Num_Form_Calc(siki, x, y, z, ans) print(i) print(ans) print(ans.value)
0 c_double(12.1) 12.1