全然更新しないブログ
HSPメモ帳
「ll_getproc」で関数のポインタ取得
◆一覧リスト:HSP Ver2.61・ブログ関連・その他 ・・・ 人気blogランキング |
「ll_getproc」
「ll_llibload」を使用して読み込んだDLLのハンドルを使用して
任意の関数名のポインタを取得します。
※関数のポインタは「ll_callfunc」(関数を呼び出す命令)
で必要になります。
◆書式
ll_getproc v1,"s2",n3
v1 : 関数のポインタを受けるための変数
s2 : 文字列又は文字列変数
n3 : ll_libloadで取得したDLLのハンドル
(「ll_libload」参照)
コメント ( 0 ) | Trackback ( 0 )
「ll_libfree」を忘れずに
◆一覧リスト:HSP Ver2.61・ブログ関連・その他 ・・・ 人気blogランキング |
「ll_libfree」
「ll_llibload」を使用して読み込んだDLLを開放します。
※解放を忘れると、他のソフトが起動できなくなったり
不具合が発生する可能性があります。
◆書式
ll_libfree n1
n1には「ll_libload」の1番目の引数の変数(DLLのハンドルが格納されています)
を指定します。
(「ll_libload」参照)
コメント ( 0 ) | Trackback ( 0 )
「ll_libload」でDLLを使用する
◆一覧リスト:HSP Ver2.61・ブログ関連・その他 ・・・ 人気blogランキング |
「ll_libload」
「llmod.as」をインクルードして「dllproc」命令で
6つのDLLを使用することができますが、
「llmod.as」を使用せずに自分で任意のDLLを使用することができます。
◆書式
ll_libload v1,"s2"
v1 : DLLのハンドルを受けるための変数
s2 : DLLの名前が入った文字列変数又は文字列
◆ロードしたDLLの関数使用方法
- 「ll_libload」でDLLをロードして、DLLのハンドルを取得します。
2でこのハンドルを使います。 - 「ll_getproc」で関数のポインタを取得します。
3でこのポインタを使います。 - 「ll_callfunc」で関数を呼び出します。
- これ以上DLLを使用しない場合は
「ll_libfree」でDLLを解放します。
//ウィンドウの位置を0,0 サイズを200,50に screen 0 , dispx , dispy width 200 , 50 , 0 , 0 //bmscr.13にウィンドウハンドルが入っています mref bmscr,67 //「hdll」に「USER32.DLL」のハンドルが入ります ll_libload hdll , "USER32.DLL" //読み込んだDLLの使用 //「MoveWindow」関数のポインタ取得 ll_getproc movewnd , "MoveWindow" , hdll //関数を呼び出しがわかるようにダイアログ表示 dialog "MoveWindow を呼び出します" //ウィンドウの位置を100,200 サイズを300,400に変更 prm=bmscr.13 , 100 , 200 , 300 , 400, 1 ll_callfunc prm , 6 , movewnd pos 70 , 185 : mes "移動、サイズ変更完了!" //※必ずDLLを解放すること ll_libfree hdll stop |
コメント ( 0 ) | Trackback ( 0 )
「#define」について
◆一覧リスト:HSP Ver2.61・ブログ関連・その他 ・・・ 人気blogランキング |
「#define」
#define マクロ名 マクロ定義
マクロ名で指定したキーワードをマクロ定義に置き換えます。
コードの変更、表記などが楽になります。
※#defineはあくまで、文字を置き換えているだけですので、
頻繁に使用するものではありません。
※大文字で書いてある部分がありますが、HSPは大文字と小文字は同じ意味です。
#define定義している事を判りやすくするために大文字にしています。
例)
#define SIZE 100
mes ""+SIZE
stop
「mes」の出力は、「100」になります。
SIZEが100に置き換えられています(マクロ)。
- 使用例 -
左がマクロ、右がマクロ展開時です
#defineの部分を変更するだけで済むので後からの変更が簡単です | |
#define WINDOWXSIZE 640 #define WINDOWYSIZE 480 #define TITLENAME "SOFTNAME" screen 0,WINDOWXSIZE,WINDOWYSIZE title TITLENAME | screen 0,640,480 title "SOFTNAME" |
#define KEISAN(%1,%2,%3) %1*%1*%1+(%2*%2)-(%3) a=KEISAN 2,3,4 | a=2*2*2+(3*3)-(4) |
#define MESSAGE(%1="丸",%2="三角") mes %1+"と"+%2 MESSAGE ,"四角" | mes "丸"+"と"+"四角" |
#define start(%1) %tstart %s1 mes "START" #define owari %tstart mes %o start "OK" owari | mes "START" mes "OK" |
コメント ( 0 ) | Trackback ( 0 )
「stick」命令について
◆一覧リスト: HSP Ver2.61 ・ ブログ関連 ・ その他 ・・・ 人気blogランキング |
「stick」命令
ゲームのキャラクター移動など操作関連の
キー取得したい場合に使用します。
※文字コードは取得できません。
- stick p1,p2,p3
- p1=変数
- 読み込むための変数
以下左の数値が代入されます。
1 カーソルキー左(←)
2 カーソルキー上(↑)
4 カーソルキー右(→)
8 カーソルキー下(↓)
16 スペースキー
32 Enterキー
64 Ctrlキー
128 ESCキー
256 マウスの左ボタン
512 マウスの右ボタン
1024 TABキー - p2=0~(0)
- 非トリガータイプキー指定
例えば、ENTERキー32を指定するとENTERを押し続けている間も
検知します。他のキーは押した瞬間しか検知しません。 - p3=0~1(0)
- ウインドゥアクティブチェックON/OFF
0を指定するとウィンドウが非アクティブでも入力受け付けます。
1は逆にアクティブでないと受け付けません。
screen 0,300,50 sdim titlename,1024 titlename="「stick」サンプル" title titlename+" "+"引数省略" font "",12 objmode 2,1 objsize 100,20 pos 0 , 0 : button "引数省略",*btn pos 100 , 0 : button "非トリガー:ENTER",*btn pos 200 , 0 : button "アクティブのみ",*btn *main //描画の表示をストップ redraw 0 color : boxf color 255,255,255 st=0 if bt=0:stick st if bt=1:stick st,32,0 if bt=2:stick st,,1 pos 10,30 mes "取得キー"+st //上記描画の表示 redraw 1 wait 10 goto *main *btn bt=stat if bt=0:title titlename+" "+"引数省略" if bt=1:title titlename+" "+"非トリガー:ENTER" if bt=2:title titlename+" "+"アクティブのみ" goto *main |
コメント ( 0 ) | Trackback ( 0 )
« 前ページ | 次ページ » |