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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
1206
k5342llmodについて4未解決


k5342

リンク

2010/12/6(Mon) 16:53:45|NO.36145

質問ですが、llmod3/llmod3.hsp と user32.as を同時にイングルードしたいのですが、
#HSP script preprocessor ver3.2 / onion software 1997-2009(c)
#Use file [hspdef.as] #Error:symbol in use [charlower] in line 43 [user32.as] #Fatal error reported. #Error:symbol in use [charlower] in line 2 [???] #Fatal error reported.
と、自分にとって意味不明なエラーが表示されました。
どうしても2つともイングルードして拡張機能を使いたいのですが、
何とかなりませんか?



この記事に返信する


レノス

リンク

2010/12/6(Mon) 17:30:06|NO.36146

llmod3.hsp の下の方にある、

#deffunc charupper 〜 #deffunc charlower 〜 return
を、全部コメントにしてみてください。



cookies

リンク

2010/12/8(Wed) 17:52:05|NO.36161

呼び出す側で
#include "llmod3/llmod3.hsp"
#undef charlower #undef charupper #include "user32.as"
みたいにしたらどうですか?
(llmod3とuser32のインクルード順はお好みで。)



とおりすがり

リンク

2010/12/8(Wed) 19:20:30|NO.36162

>2氏

答えとしてはあっている。正解だ。
しかしなぜ正解だけを残す?それだと主さんは技術力の向上にはならない。
何かトラブルが起きたときまた掲示板の質問をただただ繰り返すだけだ。



レノス

リンク

2010/12/8(Wed) 20:56:39|NO.36163

> とおりすがり さん
なるほど。


エラー symbol in use [x] は、
#deffunc などのプリプロセッサ命令が識別子(名前)を定義するとき、
そこで定義される識別子がすでに使われている (= 多重定義しようとしている)、
という意味です。

エラー Fatal error reported. は、
「致命的なエラーが報告された」
という意味です。深い意味はありません。

識別子 charupper, charlower はどちらも、
user32.as で #define、llmod3 で #deffunc により、
global に (#moduleの内外ともで使えるように) 定義されているので、エラーになりました。


なので、どちらかの charlower, charupper 定義を無効化する(or消す)必要があります。
cookies さんの方法でもいいと思います。



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