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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0124
tds12HSPでDLLの実装12解決


tds12

リンク

2016/1/24(Sun) 00:54:30|NO.74263

HSPでDLLを作ることについて。

この掲示板でも、幾度か話題に上がってきたDLLについて、
雑談しているうちに、それらしいものができたら
いいなと、7割夢、3割技術で、実装を試みるスレッドです。

「コールバック用モジュールができました」
http://hsp.tv/play/pforum.php?mode=all&num=62130
このスレッドの続きとしても使いたいと思います。

やっと、動くものができたので、試しに公開します。
hsp3ax2dll
https://www.dropbox.com/s/fckmk9n6xy28nzy/hsp3ax2dll_20160123.zip?dl=0

夢の話でも、技術的な話でも、反応があるとうれしいです。



この記事に返信する


Y_repeat(旧y.tack)

リンク

2016/1/24(Sun) 21:54:08|NO.74287

HSPでDLLが作れると
スクリプト転載不可 DLL転載可とか出来そうですね
現状だとスクリプトを公開したい場合
使用モジュールとかも公開しなきゃいけないですよね

あとは
VC++でdllを作成してHSPで利用の逆の
HSPでdllを作成してVC++で利用が出来そうですね
自分HSPへの適正低い気がして
そういうのも試してみたいです



kanamaru

リンク

2016/1/25(Mon) 17:00:08|NO.74293

hspからdllを実装するスレッドで話す話ではないですが、
以下のような形も面白いかもしれません。
以下にあげたプログラムに用いてる関数はあくまでも空想であり、
実際に動くプログラムではありません。

AX a = loadax("test.ax"); void* p = getfuncptr(a,"test"); (p*)("test");
で、test.axないで定義しているtest関数に"test"
という引数を引き渡しています。



kanamaru

リンク

2016/1/25(Mon) 17:18:44|NO.74294

ひょっとしたら関数ポインタ使い間違えたかも。



tds12

リンク

2016/1/25(Mon) 21:18:38|NO.74296

>スクリプト転載不可 DLL転載可とか出来そうですね
これ、できたらいいですよね。
hsp3ax2dllだと、おおげさすぎて使えませんが、
やってみたくもありますね。

>以下のような形も面白いかもしれません。
やる気になれば、結構簡単にできそうですね。
単一インスタンス、関数名を定数のみ、C++のみ
くらいの制限でよければですが。



kanamaru

リンク

2016/1/30(Sat) 16:41:20|NO.74363

hspでdllを作るためのものを作るのに挑戦しようとおもったのですが、
以下のことが調べてもわからなかったため、わかる方教えてください。
C言語を用いて、AXファイルからユーザー定義命令、関数の情報を取り出すのに、
どの構造体にAXファイルの中身を突っ込めばいいですか?
また、どのメンバを参照すればいいですか?



tds12

リンク

2016/3/19(Sat) 16:02:25|NO.74967

返信遅れてすみません。

1.AXファイルを読み込みます
2.その先頭部分をHSPHED構造体へコピーします
3.LIBDAT構造体配列にAXファイルのpt_linfoバイト目から
max_linfoバイトだけコピーします
4.STRUCTDAT構造体配列にAXファイルのpt_finfoバイト目から
max_finfoバイトだけコピーします
5.STRUCTPRM構造体配列にAXファイルのpt_minfoバイト目から
max_minfoバイトだけコピーします

DSブロックも必要かもしれません。

http://d.hatena.ne.jp/chaperatta/20081012/1223751707
メンバについては上リンクあたりが参考になりそうです。

返信あればまた。



skyblue

リンク

2016/3/20(Sun) 09:23:00|NO.74984

OpenHSPのファイルのどっかに構造が書かれていたはずです。
そちらの方が比較的最新です。



kanamaru

リンク

2016/3/20(Sun) 09:55:18|NO.74985

openhspには該当ページが存在しませんでした。
https://github.com/zakki/openhsp/blob/master/package/win32/hspsdk/hsp3code.txt
こことか使えますか?



tds12

リンク

2016/3/20(Sun) 13:28:19|NO.74988

>openhspには該当ページが存在しませんでした。
dev.onionsoft.net/trac/

dev.onionsoft.net/trac/openhsp/
へ移動したのでそれが原因だと思います。

>こことか使えますか?
それも使えます。
すでに読んでいるかと思いますが、
同じものがインストールフォルダのhspsdkフォルダに入っていて、
hspdll.txtというファイルもあります。



tds12

リンク

2016/5/3(Tue) 22:40:01|NO.75374

hsp3ax2dllを更新しました。
https://www.dropbox.com/s/nh3coc7oo0p2dct/hsp3ax2dll_20160503.zip?dl=0


Microsoft Visual C++ Compiler for Python 2.7をインストールするだけで、
以前よりずっと簡単に(ほぼF5だけで)DLLを作ることができるようになりました。
https://www.microsoft.com/en-us/download/details.aspx?id=44266



tds12

リンク

2016/8/29(Mon) 15:57:38|NO.76739

hsp3ax2dllを更新しました。
https://www.dropbox.com/s/gn0t2xm4ntqpjfg/hsp3ax2dll_20160829.zip?dl=0

4月30日及び5月3日に公開したものは問題があり、実行できなくなっていました。
今回はそれを修正したものです。
また、OpenHSP815(HSP3.5β4程度)までの機能を使うことができます。



tds12

リンク

2017/2/17(Fri) 22:36:46|NO.78270

hsp3ax2dllを更新しました。
https://www.dropbox.com/s/2dtd6s7tx7q3m5q/hsp3ax2dll_20170214b.zip?dl=0

環境によってうまく生成できないバグを修正しました。
OpenHSPの840相当までの更新も利用できます。



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