Julia 学習:ccall関数

2015-09-19 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での blogramのランクインカテゴリは、
6、2、1、0、0、 1、0、0、0、0(41)で、換算ポイント 83pt 。
「FM青森」2位にダウン。「Firefox」6位にダウン。
「化学業界」「硝子業界」「グルコサミン」「Python」「FM COCOLO」bg値変動。
「C言語」「Perl」全く変化無し。
・-・ - -・

さて、本文。

前回(2015-09-16)の記事:
Julia 学習:round関数、sin関数、print関数
に続いて「Julia 学習」。


「ccall」関数について。


本家サイトの Docs ページ」の
Calling C and Fortran Code
には、
  ・・・・・
  ・・・・・
  Finally, you can use ccall to actually generate a call
   to the library function.
  Arguments to ccall are as follows:

  1.(:function, “library”) pair
    (must be a constant, but see below).
  2.Return type, which may be any bits type,
    including Int32, Int64, Float64, or Ptr{T}
    for any type parameter T,
    indicating a pointer to values of type T,
    or Ptr{Void} for void* “untyped pointer” values.
  3.A tuple of input types, like those allowed for the return type.
    The input types must be written as a literal tuple,
    not a tuple-valued variable or expression.
  4.The following arguments,
    if any, are the actual argument values passed to the function.

  As a complete but simple example,
  the following calls the clock function from
  the standard C library:

と云うことで、
  t = ccall( (:clock, "libc"), Int32, () )
とある。

そこで、「Julia」インタプリタを立ち上げ、
  println( ccall( (:clock, "msvcrt"), Int32, () ) )
と打ち込むと、整数値が表示された。

この1行だけのファイル「hoge.jl」を作って、
DOSコマンドプロンプトで、“hoge.jl”と打ち込むと、動作OK。


では、自作の“DLL”では?

今年1月(2015-01-09)の記事:
Clang(+MinGW)でCソースをコンパイル(&リンク)
  ・・・・・
  ・・・・・
  これで、「test_func.dll」が出来る。

  そこで、これを利用する“Python”スクリプトを用意。

  ======== test_main.py:「ctypes」で「.dll」利用
  

  import ctypes
  kami = ctypes.cdll.LoadLibrary( 'test_func.dll' ) # import dll
  print '2+3=%d' % kami.Add( 2, 3 ) # exec func

  

  これで、「test_main.py」を実行すると、・・・
  “2+3=5”
  と出る!
  ・・・・・
  ・・・・・


ここの
「test_main.py」に相当するのは?


println( "2+3=", ccall( ( :Add, "test_func" ), Int32, ( Int32, Int32 ), 2, 3 ) )


この1行だけで十分! Good!

・・・・・“import”とかはイラナイ!



本日はここまで。


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


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

コメントの投稿

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

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



おきてがみ

最新記事
カレンダー
03 | 2017/04 | 05
- - - - - - 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 - - - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

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

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


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

Google Analytics
ブックマーク