Lua ( GSL Shell ) 学習:DLL 呼び出し

2017-07-19 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
このところ、Python プログラムを“GSL Shell”に移植している。

その中で“DLL 呼び出し”処理のコードが出てきた:

“MinGW”で自作した“Sub.dll”内の“Fun”関数を呼び出し実行するもの。
##### hogehoge.py ####
### inIMG 設定済み

import ctypes
import numpy as np
from PIL import Image

IN = Image.open( inIMG )
(xx, yy) = IN.size
INimg = np.array( IN.getdata(), np.uint8 ).reshape( ( yy, xx ) )

k_lib = ctypes.CDLL( 'Sub.dll' ) # dll 読み込み

iT = np.arange( 1, dtype=ctypes.c_ubyte ) # == 先ず属性を定義して、
iT = INimg # == 代入する。

################# dll 内の Fun 関数実行:
k_lib.Fun( xx, yy, iT.ctypes.data_as(ctypes.POINTER(ctypes.c_ubyte)) )
##### ・・・・・
の様なコード

これ(DLL呼び出し)に関しては、
昨年4月(2016-04-20)の記事「Lua - dll 連携:コールバック処理」が
まとめ的なもの。


なので、上記“Python”コードは、
以下の様な“GSL Shell”コードに変換できる:
----- hogehoge.gsl -----
ffi.cdef[[
typedef unsigned char Byte;
int Fun( int, int, Byte* );
]]
cv2 = require'cv2'
img = cv2.cvLoadImageM( charA(inIMG), 0 )
xx, yy = img.xx, img.yy

k_lib = ffi.load( 'Sub' ) -- dll 読み込み

----------------- dll 内の Fun 関数実行:
k_lib.Fun( xx, yy, img.Byte )
----- ・・・・・
OKダ。


本日はここまで。


Lua ( GSL Shell ) / FFI 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170531
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク