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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0309
初心者こんな質問してもいいですか・・・9解決


初心者

リンク

2007/3/9(Fri) 18:06:35|NO.6166

こんな質問してもいいのかわからないんですけど、
モジュールやDLLというのは何ですか?
3Dを作ろうと言っているのにこれがよくわからなくて・・・
初心者でもわかるように教えてください。
・・・すいません呆然とした質問で・・・



この記事に返信する


初心者

リンク

2007/3/9(Fri) 19:38:49|NO.6169

ついでにもう一つ
これは前にも質問したんですけど、キーボード入力の時、
スペースを押しながら上とかを一緒に押して下を押すと、
下のキーが認識されないんです。

repeat color 255,255,255:boxf:color 0,0,0 getkey a,37 getkey b,38 getkey c,39 getkey d,40 stick e,16 pos 0,0 mes a mes b mes c mes d mes e wait 1 loop
これでキーテストしたんですけど・・・



ふほ

リンク

2007/3/9(Fri) 22:24:52|NO.6173

モジュールについては、まず
「プログラミング・マニュアル>3.拡張文法>モジュール」の項をお読みくださいm(__)m
便利な機能を作って、後で使い廻しできる状態にしたものとでも思っておけば良いとでしょう。

DLLは、「なんか便利な機能を誰かが作って、まとめてくれてる物」だとでも思っておけばいいでしょう。
適切な手順で、「使いますよ宣言」すれば、HSP本体に無い機能を使えるようになります。


乱暴な説明ですが、ややこしい話をするよりはニュアンス的に解って貰えると思います。


キーの処理については、自分の環境では問題なく動作しています。
キーボードの側の問題かもしれません。



GENKI

リンク

2007/3/9(Fri) 22:27:56|NO.6174

> モジュールやDLLというのは何ですか?

大まかに言いうと、HSPが持っている命令だけでは出来ない、あるいは難しいような機能をHSPで簡単に使えるようにする機能のことです。

DLLはプラグイン(拡張プラグイン)と一般のDLLに分けられるので分けて説明します。

プラグイン…
 ユーザーC++などの言語で作成したHSP用のDLLファイルです。
これを使うと3Dや音楽、映像などでの特殊な機能をHSP上で使えるようにすることが出来るようになります。
プラグインを使うとHSPに新しい命令が追加されます。
【例】Easy3Dなど

モジュール…
 HSPにもとからある命令などを組み合わせるなどして、新しい命令を作ることが出来る機能です。
これを使うと、HSPで出来ても実際に使うのが面倒な機能などを簡単にすることが出来ます。
モジュールを使うとHSPに新しい命令が追加されます。
【例】d3moduleなど

DLL…
HSP以外の言語でも使用できる命令セットのようなもの。
HSPからも利用することが出来ます。
【例】unzip.dllなど


利用による効果はおおざっぱにこのような感じです。

利用する時の難しさは、DLLが一番難しくて、モジュール・プラグインは同じぐらいです。



GENKI

リンク

2007/3/9(Fri) 22:38:24|NO.6176

 あ、もしかして、知りたいのは「違い」じゃなくて「使い方」の方でしたか?
書いた後にそんな気が…。orz
私も昔は説明書よんでも使い方がぜんぜんわからなかったです。なにがなにやらで。

 ん?いや、3Dをやるのにモジュールにするかプラグインにするか迷ってるって事かな?
d3moduleとEasy3Dとかで…。

 うーん、知りたい情報はこの辺のことで、あってますでしょうか?



あととりあえずは「初心者」って名前はよく他のユーザーさんとかぶるから変えたほうがいいんじゃないかな。と思います。



GENKI

リンク

2007/3/9(Fri) 23:38:25|NO.6179

> ついでにもう一つ

 出来れば新スレを立ててください。
後々に検索する際に利用しにくくなります。
また、質問への回答も得られにくくなるので、今後は内容が関連しない質問は別々に投稿してくれると助かります。


> これは前にも質問したんですけど、キーボード入力の時、
> スペースを押しながら上とかを一緒に押して下を押すと、
> 下のキーが認識されないんです。

nキーロールオーバー
http://ja.wikipedia.org/wiki/N%E3%82%AD%E3%83%BC%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC

 簡単にいうとキーボード自体の性能の問題です。
この問題を解決するもっとも簡単な方法は、キーボードを高級品に買い換えることです。
しかし、プログラム的にはお勧めできる方法ではありません。一般ユーザーが3キーロールオーバーだからです。
プログラミングでの正解は、同時押しが必要ないように作ることです。



初心者

リンク

2007/3/10(Sat) 07:22:00|NO.6184

すいませんでした。
キーボードの方はだいたいわかりました。
モジュールの違いは何となくわかったんですけど、
使い方がいろいろあって?(あるのかわかんないけど・・・)
たぶんプラグインは使えるんですけど、
DLLがわかんないんです。
まだそこまで必要ないのかもしれないんですけど、
一応この機会に覚えたいななんて思ったりして・・・
引き続きお願いします。



Kpan

リンク

2007/3/10(Sat) 09:10:32|NO.6192

>DLLがわかんないんです。
>まだそこまで必要ないのかもしれないんですけど、

HSPで3Dゲームを作る「初心者」ということなので、必要ない分野かと。
DLLの利用法はちょくとさんのページに書かれてあります。HSPの基本的な
知識外のことが必要になってきますよ。
http://yokohama.cool.ne.jp/chokuto/advanced/index.html

こんなのとか。

#uselib "user32" #func AnimateWindow "AnimateWindow" int, int, int AnimateWindow hwnd, 2000, $80000 | $10000 AnimateWindow hwnd, 2000, $80000 | $20000 end



Sioux

リンク

2007/3/10(Sat) 19:05:19|NO.6198

>DLLがわかんないんです。
 DLL = ダイナミック・リンク・ライブラリー, は EXE ファイルとリンクさせて使う関数とデータを含んだモジュールの集合体です。
DLLは、DLLの中身がどうなっているか知らなくても使用できる便利(?)なファイルです。
↓に使用例を書いときます。
#uselib "test1.dll"
#cfunc str_len "_str_len@4" sptr ; HSP の strlen より速くしたい場合は ↑の sptr を var に変えてください。 ; ただし、変数しか使えません。 mes "文字列は " + str_len("abcdefg") + " 字です"
↑を実行するには↓にある test1.dll をダウンロードし、
http://briefcase.yahoo.co.jp/bc/asmhack1988/lst?&.dir=/976a&.src=bc&.view=l
DLL を HSP 本体と同じディレクトリに入れてください。


 ダイナミック・リンク・ライブラリーの他に、スタティック・リンク・ライブラリー, と言うものもがあります。
これは プロセス(EXE) が起動された時、そのプロセスが使用するメモリ空間に直接ライブラリーの内容をコピーします。
つまり、プロセスを起動するたびにそこにライブラリー内容をコピーするのでメモリをたくさん使います。
一方ダイナミックな方は、あるメモリ空間にライブラリーの内容をロードし、それを共有し合うのでメモリを節約できます。

 DLL はいくつかのアプリケーションで共有されますが、DLL が使用する変数や定数は、DLL を起動したプロセス空間に作成されるので通常共有されることはありません。
だから、他のプロセスが自分の変数内容を書き換えてしまうことは普通はありません。
↓でいろいろ試してみてください。
#uselib "test2.dll"
#func set "_set@4" int #cfunc load "_load@0" // DLL 内で使用している変数(メモリ空間)に代入 set 12345 // メモリ内容をロード mes "このプロセス内に保存されている値は " + load() + " です"
↑を実行するには↓にある test2.dll をダウンロードし、
http://briefcase.yahoo.co.jp/bc/asmhack1988/lst?&.dir=/976a&.src=bc&.view=l
DLL を HSP 本体と同じディレクトリに入れてください。

 以上



初心者

リンク

2007/3/11(Sun) 08:31:25|NO.6204

ありがとうございます。
参考にさせていただきます。



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