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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0406
HSP超ド初心者#define がエラー6解決


HSP超ド初心者

リンク

2009/4/6(Mon) 15:17:29|NO.24488

こんにちは。
HSP超ド初心者で4日悩んでいます。
教えてください;;

結果として、
①メインHSP記述ページ内指定の画像を右クリックでポップアップ
②ポップアップリスト(20項目)から選択でlistbox表示
③listboxは常に表示(returnもしくはend選択以外)
④listboxの項目(10項目)のWクリック選択で指定された画像表示

を、したくて①~③まで思い通りの形に一応できたのですが、
ポップアップリストの中の20項目分の#includeさせる為に
20HSP記述を作ったんですが、そのlistbox設置記述すべてに

#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)

が、記述してあります。
このままメインHSP記述でF5を押すと、

#HSP script preprocessor ver3.1 / onion software 1997-2007(c)
#Use file [hspdef.as]
#Error:symbol in use [hiword] in line 3 [listbox2.hsp]
#Fatal error reported.
#Error:symbol in use [hiword] in line 81 [popuplist.hsp]
#Fatal error reported.
#Error:symbol in use [hiword] in line 11 [hsptmp]
#Fatal error reported.

と、出てしまいます。
line 3 [list2.hsp]のエラーについて
listbox設置記述HSPページのすべてのline 3には
#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)が、
記述されていて、
最初に#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)
を記述したページはエラーになっていないようなので
思い当たることといえば
#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)
が、19回重複記述しているので2項目めの
#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)
が、エラーになっているのではないかと思いました。

この20項目分のlistbox記述の重複部分を
どうすればエラーが出ずに表示できるようになるかが
わかりません。

説明が下手でホント申し訳ないです;;
解りづらいと思いますが教えてください;;

宜しくお願い致します。



この記事に返信する


inovia

リンク

2009/4/6(Mon) 15:33:40|NO.24489

同じ名前のマクロ(#define)は重複してはいけません。
スクリプトの書き方に問題があるかと。

可能であれば、アップローダにあげてみては?
…というか、重複している部分を全部削除してはどうですか?



check

リンク

2009/4/6(Mon) 16:01:38|NO.24490

何が言いたいのかほとんどわからないのだが、
とりあえず最初の#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)だけ残して
後に出てきた#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)をすべて削除してみな。



匿名

リンク

2009/4/6(Mon) 16:48:26|NO.24491

>#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)
思わぬ解釈をされているかもしれないので、思い当たるところ全てに括弧をつけてみては?
例えば、

#define ctype HIWORD(%1) (%1 >> 16 & $FFFF) mes HIWORD(1 | 2)
とするとどうなるでしょうか?



HSP超ド初心者

リンク

2009/4/6(Mon) 22:53:51|NO.24496

inoviaさん、checkさん、匿名さん
お返事ありがとです;;

最初の#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)
を残して後のを全部消してみます;;

それでもできなければまたきます;;

ありがとうございます;;



レノス

リンク

2009/4/6(Mon) 23:46:16|NO.24497

ついでに:
#define をすべて #ifndef と #endif で囲むという方法もあります。( 詳しくは F1 キーのヘルプで )
HIWORD や LOWORD のように、他の場所で定義されている

ついでのついでに:
「メインHSP記述ページ」「〃内指定の画像」「returnもしくはend選択以外」
「20HSP記述」「メインHSP記述」
がよく分かりません。「HSP記述」==「スクリプト」でしょうか。
また、listbox の件も、説明不足な感じで、状況が想像しにくいです。
投稿するときは、文章を読み直し、他の人にもうまく通じるかどうかを確認した方が
いいかと思われます。

ついでのついでのついでに:
丸で囲まれた数字は、表示できないことがあるので、使わない方がいいです。


ツッコミ過ぎで、すいません。



HSP超ド初心者

リンク

2009/4/7(Tue) 15:50:26|NO.24500

inoviaさん、checkさん、匿名さん>
ありがとうございました^^
できました^^
ホントにありがとうございました。

レノスさん>
自分は何からカキコしたらいいのかわからなかったので
HSPが解る方ならなんとなーくわかるのではないかと
思って自分が書けるだけ把握してるだけのことは
書こうと思って書いたです。
解りにくくてすいません;;
あと、丸で囲まれた数字はスクリプトには使っておりません;;
「HSP記述」は、HSPで記述するトコはスクリプトしか
ありませんよね?
なのでスクリプトのことです。

「line 3 [list2.hsp]のエラーについて
listbox設置記述HSPページのすべてのline 3には
#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)が、
記述されていて、
最初に#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)
を記述したページはエラーになっていないようなので
思い当たることといえば
#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)
が、19回重複記述しているので2項目めの
#define ctype HIWORD(%1) (%1 >> 16 & $FFFF)
が、エラーになっているのではないかと思いました。

この20項目分のlistbox記述の重複部分を
どうすればエラーが出ずに表示できるようになるかが
わかりません。

説明が下手でホント申し訳ないです;;
解りづらいと思いますが教えてください;;」

と、いうのが質問なので。。。

listboxは設置できてるんですが、
エラーが出る。じゃ、どうしたらエラーが出なくなる?
思い当たる節といえば・・・
で、重複が原因じゃないかな。。
と、思ってそれをどうしたらよいか聞きたかったんです;;

ホント書き方わからんままでカキコしてすいませんでした。
申し訳ありませんでした。

以後気をつけます。
本当にすいませんでした。

ありがとうございました。



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