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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
1023
imaモジュール定義命令について6解決


ima

リンク

2006/10/23(Mon) 20:37:28|NO.3058

はじめまして、HSPを愛用させてもらっているimaです。
本題なんですが、モジュール定義命令の中で
#include命令で読み込んだモジュールは使えないんでしょうか?
DirectX関係で困っているんです。



この記事に返信する


Drip

リンク

2006/10/23(Mon) 22:39:16|NO.3059

Dripです。

 imaさん、こんにちは。#include で読み込んだモジュールが使用できない、ということですが、
そんなことはありません。以下に#includeで読み込んだモジュールを使用するサンプルを示します。

//押せないボタンが表示されればモジュール動作は正常です。 #include "obj.as" pos 100,100:button "押せない。",*o objgray 0,0 *o
 問題の原因はモジュールというよりDirectXの方が怪しい気がします。
例えば、2種類以上の別人が開発したモジュールファイルを読み込み、使用していませんか?
DirectXは2つ以上のプラグインを使用(DirectSound系+DirectDraw系等)したり、
別のプラグインや別の環境下を想定したモジュールを使用すると、エラーすることがよくあります。
現段階では情報が少なすぎるため、問題の原因を特定することが困難です。
エラーが発生する状況をもう少し開示できませんか?



Irisawa

リンク

2006/10/23(Mon) 22:46:51|NO.3060

使用するモジュール空間より下で#includeしていませんか。
現在のHSPは宣言をすることができず、呼び出す場所より上に定義がなければいけません。

あとはモジュール空間の違いとかいくつか気をつけるべき点があります。



ima

リンク

2006/10/28(Sat) 10:53:53|NO.3116

説明不足ですみませんm(__)m


#include "hmm.as" #module #deffunc aa dminit;DirectMusicを初期化 return #global aa
これを実行しようとすると、
#HSP script preprocessor ver3.0a / onion software 1997-2005(c)
#Source file not found.[userdef.as]
#HSP code generator ver3.0a / onion software 1997-2005(c)
hsptmp(4) : error 2 : 文法が間違っています (4行目)
--> dminit@m0
このようなエラー文が表示されてしまいます


#include "hmm.as" dminit stop
これではエラーは起きません。

Dripさんの例では、

#include "obj.as" #module #deffunc aa pos 100,100:button "押せない。",*o objgray 0,0 *o return #global aa
このようにしてもエラー文は出ずに正常でした。

【 ファイル名 】hmmdll.lzh
【 作者名 】うにたま
【 必要環境 】WINDOWS ME/XPその他は分かりません HSP 2.61
【 取扱種別 】フリーウェア
【 バージョン 】1.40
【 転載・配布 】可
こういうdllを使わさせて頂いているんですけど、
もしかしたら、対応バージョンが2.61だからなんでしょうか・・・



kz3

リンク

2006/10/28(Sat) 15:10:25|NO.3126

>【 必要環境 】WINDOWS ME/XPその他は分かりません HSP 2.61
>【 バージョン 】1.40

HSPTV!の『拡張プラグイン・ツールの紹介』に最新版があるのでそれを使ってみてください。

あとhmm.asを見てみましたが、globalが指定されていないので、モジュールの外と内とが隔てられ、外で定義されたキーワード(命令等)が使えません。
モジュール内でインクルードしてみてください。
もしくは外で定義されたキーワードを内部で使いたい時は@をくっつけるか。
どちらがいいのかは分かりません。

それを行ったうえで、もしimaさん(もしくは他の方でも...)がhsp30aとhsp31b5を持っていたら伺いしたいことがあるのですが、

#module #include "hmm.as" #deffunc aa dminit;DirectMusicを初期化 return #global aa
これを実行したあと、ウィンドウを閉じてみてください。
私の環境(WinXP HE SP2)では以下のようになりました。

ver.|DebugWindow 有効(*)|DebugWindow 無効 ----+-------------------+---------------- 30a |普通に閉じて終了 |普通に閉じて終了 31b5|応答なし |応答なし (*)DebugWindowは標準のものです。
となりました。他の方のPCではどうでしょう?
バージョンによって違うことからHSP側に何かありそうなのですが、何があるのかまでは分かっていません。
すみません...。



ゆちボン

リンク

2006/10/29(Sun) 14:29:59|NO.3148

こんにちは。ゆちボンです。

まず、可能性として、
DirectXのバージョンが古いと思います。(コンパイルできても実行できない場合)

>【 必要環境 】WINDOWS ME/XPその他は分かりません HSP 2.61
>【 バージョン 】1.40
ちなみに、HSP3.0aでも動きますよ。「hmm.dll」は。
(今ゲームを作っているんですが、それで使ってます。動きます。)



ima

リンク

2006/10/29(Sun) 21:29:33|NO.3162

>もしくは外で定義されたキーワードを内部で使いたい時は@をくっつけるか。

#include "hmm.as" #module #deffunc aa dminit@;DirectMusicを初期化 return #global aa
こうしたら、内部でも外部でも使うことができました。
皆さん親切にご解答していただき、本当にありがとうございましたm(__)m


>使用するモジュール空間より下で#includeしていませんか。
一番上で#includeしていましたので、これは原因ではないようです。

>あとはモジュール空間の違いとかいくつか気をつけるべき点があります
これが原因かもしれません…

>HSPTV!の『拡張プラグイン・ツールの紹介』に最新版があるのでそれを使ってみてください。
僕の知らない間にバージョン1.42がリリースされていたようです。
ダウンロードして使ってみましたが、それだけでは問題は解決しませんでした。

>モジュール内でインクルードしてみてください。
内部では使えましたが、外部でこのモジュールの命令は使えませんでした。

>DirectXのバージョンが古いと思います。(コンパイルできても実行できない場合)
DirectXはバージョン9の最新版でした。

最後にkz3さんの質問ですが、
僕の環境はkz3さんと同じ(WinXP HE SP2)で、四つとも検証しましたが結果は全く同じでした。


#include "hmm.as" dminit
ちなみに、上のスクリプトでもダメでした(もちろん3.0aだと大丈夫)

これはまだβバージョンという事で、バグの一つなのでしょうか。
それとも上位互換は無いとか(それは無いか(汗)
もしかしてモジュールの仕様変更をされたのでしょうか…



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