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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0411
あのんhsp3imp.dll の hspprm の 0x101 を使用した際のHSP側の #regcmd の書き方1未解決


あのん

リンク

2017/4/11(Tue) 02:30:27|NO.79069

現在、C から hsp3imp.dll を用いて、HSP3のaxファイルを実行しようとしています。

その際に http://www.onionsoft.net/hsp/v34/doclib/hsp3imp.txt に記載のある、
「拡張命令を初期化するための関数指定」を使用したいと思い、

hspprm 0x101,0,0,PluginEntryPoint
などとC側に記載し、プラグインの起動関数'(上記 PluginEntryPoint)が正常に呼ばれることを確認しました。


この時にHSP側の「拡張プラグイン読み込み用.hspファイル」はどのように書けばよいのでしょうか?


元のプラグインのものをそのまま使うと

--------------------------- Error --------------------------- No DLL:HSP3Plugin.dll --------------------------- OK ---------------------------
とエラーになってしまいます。
もちろん、ここで「HSP3Plugin.dll」をhsp3imp.dllと同じフォルダにおけば問題なく動作するのですが、
「hspprm 0x101」によって内蔵化した意味がなくなってしまいます。


元の.hspファイルは以下のようになっています。

;HSP3Plugin.hsp #regcmd "PluginEntryPoint" "HSP3Plugin.dll" #cmd testcmd #000


以上です。よろしくお願いいたします。



この記事に返信する


あのん

リンク

2017/4/11(Tue) 02:51:53|NO.79070

補足:

動作をよく見てみると、
「hspprm 0x101」で登録した「PluginEntryPoint」より先に「No DLL:HSP3Plugin.dll」
のエラーが発生していますし、ドキュメントに記載されていない何らかの方法で
「内蔵化したDLLの元のファイル名」等をhsp3imp.dllに伝える or HSP3側にこの時用の特別な命令があるのかもしれません。

HSP2.61の拡張ランタイムでは「HSPCMD_INFO.name」に拡張プラグインのファイル名(HSP3Plugin.dll)を登録することで上記エラーを回避できたはずです。


試してだめだったもの:

; HSP側の #regcmd を空欄にする or 使わない (コンパイルエラー) #regcmd #regcmd "", "" #regcmd "PluginEntryPoint", "" // C側のhspprmに情報を送ってみる hspprm 0x101, "HSP3Plugin.dll", 0, PluginEntryPoint hspprm 0x101, 0, "HSP3Plugin.dll", PluginEntryPoint hspprm 0x0〜0x1000, 0, 0, "HSP3Plugin.dll"



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