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


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
1215
ホルンどなたかDLLを・・・17解決


ホルン

リンク

2008/12/15(Mon) 20:47:12|NO.21592

どなたか、VC用のDLLをHSP用のランタイムファイルに変換、
というか、書き換えてくれる方はいませんか?
私の知識じゃ無理なので・・・

もし、やってくれる人がいるならば、DLLとlibを渡します。



この記事に返信する


lim7000

リンク

2008/12/15(Mon) 21:09:46|NO.21594

ソースコードがないとどうにもできないのだが…



ホルン

リンク

2008/12/15(Mon) 21:17:25|NO.21595

あ、ヘッダーファイルもあります。
これを見ればどんな名前の関数が定義されているかがわかると思います。



lim7000

リンク

2008/12/15(Mon) 21:23:28|NO.21596

えーとね、既にコンパイルされてバイナリになってしまったDLLをEXEに組み込むのは不可能に近いんですよ。
C++用のライブラリならばHSPへの橋渡しをする処理を書かないといけないし、ヘッダファイルに含まれる情報のみでランタイムは作れない。

#func #cfunc から直に呼び出す方法で妥協できない?



ホルン

リンク

2008/12/15(Mon) 21:27:49|NO.21599

ああ、そうなんですか、
でも、これはVC++用なんで、
HSPから#funcで呼び出そうとしてもエラーが出るのですが・・・。



lim7000

リンク

2008/12/15(Mon) 21:36:19|NO.21600

ライブラリの名前と書いたスクリプト、現れるエラーの詳細さえ書いてくれれば、解決への手伝いは十分できる。



ホルン

リンク

2008/12/15(Mon) 21:38:55|NO.21602

とりあえず、エラーは外部DLLの呼び出しに失敗しましたです。
でも、lim7000さんに見てもらったほうが早いと思うので、
ライブラリを渡したいのですが、どうやって渡せばいいのでしょうか。
さっぱりわかりません。



lim7000

リンク

2008/12/15(Mon) 22:05:09|NO.21603

…まさか非公開ライブラリ?



ホルン

リンク

2008/12/15(Mon) 22:11:52|NO.21604

あ、いや違います。
でも、ツールの中のひとつなんですよね・・・。
ツールごとダウンロードするなら、ここです。
http://hp.vector.co.jp/authors/VA022293/pxtone/index.html

かなり使えるツールです。



lim7000

リンク

2008/12/15(Mon) 22:16:45|NO.21605

pxtone.dllとpxtone.h?

「外部DLLの呼び出しに失敗しました」は、DLL自体や関数を見つけることができない時に表示される。
とにかくスクリプトを書いてもらわないとどうにも…



ホルン

リンク

2008/12/15(Mon) 22:22:54|NO.21607

スクリプトって言っても、#funcで呼び出しているだけです。

#func global pxtone_Ready pxtone_Ready int,int,int,int,int #func global pxtone_Reset pxtone_Reset int,int,int,int,int
これで、呼び出そうとするとエラーが起きます。



ホルン

リンク

2008/12/15(Mon) 22:25:13|NO.21608

あ、#uselibを忘れました・・・。
でも、そのときは、ちゃんと書きましたし、DLLをHSP31フォルダに
移しました。



コンテスト出品者

リンク

2008/12/15(Mon) 22:29:32|NO.21610

"ピストンコラージュ HSP"で検索すると
こんなのが見つかったのだが。
これでは用は足りない?

http://sansuido.jes.jp/hsp/index.html



lim7000

リンク

2008/12/15(Mon) 22:29:39|NO.21611

#func global pxtone_Ready "pxtone_Ready" int,int,int,int,float,int,int
#func global pxtone_Reset "pxtone_Reset" int,int,int,int,float,int,int
これでダメ?



コンテスト出品者

リンク

2008/12/15(Mon) 22:32:44|NO.21612

こんなのもある。
こっちのほうが高機能っぽい。

http://skymonsters.hp.infoseek.co.jp/etc_pt4hsp.html



ホルン

リンク

2008/12/15(Mon) 22:40:01|NO.21613

>コンテスト出品者さん
そのプラグインは発見したのですが、対応しているバージョンが古くて、
うまく動かないものがあるのです。

>lim7000さん
あ、動きました。そうか、引数が足りなかったのか。
でも、どうやって引数を調べたのですか?
ヘッダーファイルを見たのですけどわかりませんでした。
もし、よろしければ、すべて定義してもらいたいのですが・・・。いいですか?



lim7000

リンク

2008/12/15(Mon) 22:56:31|NO.21615

C++の関数宣言文法を知らないと、自分で引数を書くのは難しいかもしれないね…
ヘ ッ ダ フ ァ イ ル と 見 比 べ な が ら 記 述 の 意 味 を 調 べ る 努 力 を す る こ と を条件に、
ヘッダに含まれる全ての関数を宣言したものを置いておく。
#func global pxtone_Ready "pxtone_Ready" int,int,int,int,float,int,int
#func global pxtone_Reset "pxtone_Reset" int,int,int,int,float,int,int #func global pxtone_GetDirectSound "pxtone_GetDirectSound" #func global pxtone_GetLastError "pxtone_GetLastError" #func global pxtone_GetQuality "pxtone_GetQuality" int, int, int, int #func global pxtone_Release "pxtone_Release" #func global pxtone_Tune_Load "pxtone_Tune_Load" int, int, int #func global pxtone_Tune_Read "pxtone_Tune_Read" int, int #func global pxtone_Tune_Release "pxtone_Tune_Release" #func global pxtone_Tune_Start "pxtone_Tune_Start" int, int #func global pxtone_Tune_Fadeout "pxtone_Tune_Fadeout" int #func global pxtone_Tune_SetVolume "pxtone_Tune_SetVolume" float #func global pxtone_Tune_Stop "pxtone_Tune_Stop" #func global pxtone_Tune_IsStreaming "pxtone_Tune_IsStreaming" #func global pxtone_Tune_SetLoop "pxtone_Tune_SetLoop" int #func global pxtone_Tune_GetInformation "pxtone_Tune_GetInformation" int, int, int, int #func global pxtone_Tune_GetRepeatMeas "pxtone_GetRepeatMeas" #func global pxtone_Tune_GetPlayMeas "pxtone_GetPlayMeas" #func global pxtone_Tune_GetName "pxtone_Tune_GetName" #func global pxtone_Tune_GetComment "pxtone_Tune_GetComment" #func global pxtone_Tune_Vomit "pxtone_Tune_Vomit" int, int
…間違いがあっても自分で修正してくれよ…?



ホルン

リンク

2008/12/15(Mon) 23:06:32|NO.21617

皆様、ありがとうございます。
おかげで使えるようになりました。

(DLLとかを使うならVC++の勉強もしたほうがいいのかな?)



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