GSL Shell 学習:user32.dll の利用

2016-03-24 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での blogramのランクインカテゴリは、
7、2、0、0、1、 0、0、0、0、0(40)で、換算ポイント 88pt 。
「化学業界」「硝子業界」「FM COCOLO」「e-radio」、
「グルコサミン」「Firefox」bg値変動のみ。
「Perl」「C言語」「Python」「FM青森」全く変化無し。
・-・ - -・

さて、本文。


こんなサイトを見つけた:「Advanced HSP
  - Win32 API Programming for HSP3 -

その中に、「Windows API関数を呼び出そう

  Windows API
   Windowsでは、プログラマが画面出力やユーザー入力などの処理を簡単に行う
  ことができるように、基本的な機能をWindowsがはじめから用意しておき、プロ
  グラマがその機能を自由に使うことができるようにしています。・・・・・
  ・・・・・
  ・・・・・
   Windows API関数は、先に述べたとおり、Windowsが標準で持っているDLL
  (システムDLL)にそのプログラムコードが格納されています。特に、以下に
  示すDLLはWindowsの最重要なもので、これらのDLLが提供するAPIはWindows
  アプリケーションの開発には不可欠です。・・・・・
  ・・・・・
  ・・・・・
  kernel32.dll  プロセス、メモリや周辺装置を管理
  user32.dll   ウィンドウベースのユーザー・インターフェースを管理
  gdi32.dll    文字列やグラフィックスの描画に関するサービスを提供
  ・・・・・
  ・・・・・

と云うことで、・・・

最後に、

  まとめ

   以上、まとめてスクリプトを記述すると、次のようになります。

  命令形式の呼び出し
  ・・・・・
  ・・・・・

  関数形式の呼び出し
; 使用する関数の登録
#uselib "user32.dll"
#cfunc MessageBeep "MessageBeep" int

; 関数形式での MessageBeep 関数の呼び出し
if (MessageBeep(0) == 0) {
mes "関数呼び出し時にエラーが発生しました。"
} else {
mes "関数呼び出しは成功しました。"
}

とある。


そうすると、
1月(2016-01-16)の記事:「Lua 学習:LuaJIT の FFI 使用法
で書いた、
“ffi.load”関数を使って“user32.dll”をロードして、
C言語でのコンパイル無しで同じ事が出来るのでは?


やってみた。

テスト・コードは:----------
local ffi = require'ffi'
ttt = ffi.load( 'C:/Windows/System32/user32.dll' )
ffi.cdef[[
int MessageBeep( int );
]]

ret = ttt.MessageBeep(0)
if ret == 0 then
print( 'err' )
else
print( 'OK' )
end
以上でしょうか。


いざ、実行。

チャント、
  音が出た。
そして、
  ディスプレイに、OK と表示された。



本日はここまで。


Lua ( GSL Shell ) 学習は続く。


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


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

コメントの投稿

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

おきてがみ/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
ブックマーク