HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0414
おにぎりパックファイルとプラグインについて4未解決


おにぎり

リンク

2016/4/14(Thu) 07:37:16|NO.75222

拡張プラグインを1回パックファイルに入れて吐き出して宣言するというのは可能ですか?



この記事に返信する


skyblue

リンク

2016/4/14(Thu) 10:00:41|NO.75223

hpi形式については同梱する必要がなかったはずです。
よってパックファイルに入れる必要はないです。



tds12

リンク

2016/4/17(Sun) 22:16:30|NO.75256

>吐き出して宣言
別の実行ファイルに分ければ可能かと思います。

>hpi形式については同梱する必要がなかったはずです。
hpiは実行ファイルと同じフォルダに置く必要があります。
同梱する必要がないのはhrt形式のことでしょう。

>よってパックファイルに入れる必要はないです。
通常パックファイルに入れる必要はない
(入れても効果がない)のですが、
今回は「吐き出して」なので、必要かと思います。



774

リンク

2016/4/18(Mon) 19:32:14|NO.75262

実行中に動的リンクすれば、吐き出されたdll(hpi)でも利用可能な気はします。
使用方法が異なるので「宣言」に当たるかは微妙ですけど…

//==DLLの動的リンク使用========================================= #module mod_DynamicLink #uselib "kernel32.dll" #cfunc _LoadLibrary "LoadLibraryA" sptr #cfunc _GetProcAddress "GetProcAddress" sptr,sptr #func _FreeLibrary "FreeLibrary" sptr sDim pDll ;DLLファイル名の配列 Dim hDll ;DLLハンドルの配列 Dim cDll ;カレントのDLLハンドル ;--DLLの動的リンク("DllFileName") <stat:hDLL> #deffunc dll_Load str p0, local a a=-1,-1 ForEach hDll ;既存ならハンドル返すだけ If(vartype(pDll)==2)&&(pDll.cnt==p0){a=cnt :Break} If(pDll.cnt=="")&&(a.1<0){a.1=cnt} Loop If(a<0){ ;動的リンク追加 a=a.1 :If(a<0){a=Length(hDll)} hDll.a=_LoadLibrary(p0) If(hDll.a){pDll.a=p0}else{pDll.a=""} } If(hDll.a){cDll=hDll.a} Return hDll.a ;--DLLの関数アドレス取得([hDll], "FuncName") = pFunc #defcfunc dll_getFunc int p0, str p1, local a If(p0){a.1=p0}else{a.1=cDll} :a=_GetProcAddress(a.1,p1) :If(a){cDll=a.1} Return a ;--DLLの関数呼び出し([hDll], "FuncName", <Arg>, numArg) <stat:statFunc> #deffunc dll_Func int p0, str p1, array pa, int p2, local a a=dll_getFunc(p0,p1) :If(a){Return CallFunc(pa,a,p2)} Return 0 ;--DLLの解放(hDll) #deffunc dll_Free int p0, local a If(p0){a=p0}else{a=cDll :cDll=0} :If(a==0){Return 0} ForEach hDll :If(hDll.cnt==a){_FreeLibrary hDll.cnt :hDll.cnt=0 :pDll.cnt=""} :Loop Return ;__全動的DLLの解放() #deffunc dll_Exit onexit ForEach hDll :dll_Free hDll.cnt :Loop Return #global *sample Screen 0,320,240 :SysColor 15 :BoxF :SysColor 18 Pos 32,4 :Mes "Drag and Drop Files" dll_Load("shell32.dll") :hShell32=stat ;動的リンク、一応ハンドル保持 arg=hWnd,1 :dll_Func hShell32,"DragAcceptFiles",arg,2 onCmd gosub *sample_DnD,$233 ;WM_DropFiles Stop *sample_DnD sDim s,$400 :arg=wParam,-1,varptr(s),$400 dll_Func hShell32,"DragQueryFileA",arg,4 :num=stat If(num<1){Goto *@f} :LogMes StrF("DropFiles %d",num) SysColor 15 :BoxF :SysColor 18 :Pos 4,4 Repeat num arg.1=cnt :dll_Func hShell32,"DragQueryFileA",arg,4 LogMes StrF(" %s",s) :Mes GetPath(s,8) Loop *@ :dll_Func hShell32,"DragFinish",arg,1 :Redraw 1 :Redraw 0 Return
・別途include用の改変ファイルを用意する手間が掛かるかもです
・dllの場所はどこでも良いという利点(?)が有ります



tds12

リンク

2016/4/18(Mon) 21:58:00|NO.75263

公式でなくてもよければ、
このようなものもあります。
http://hsp.tv/play/pforum.php?mode=pastwch&num=51630



ONION software Copyright 1997-2021(c) All rights reserved.