原因は同じですね。
「mod_menu.as」の「13行目」には
「#func global CreateMenu "CreateMenu"」とあり、
「user32.as」の「111行目」には
「#func global CreateMenu "CreateMenu"」とありました。
「symbol in use」はプリプロセッサ命令による定義で同名の要素があった場合に吐かれるエラーです。
user32.asは多くのAPI命令を定義しているので、他のモジュールと競合することが多いです。
対処法はいくつかありますが、最終的に「定義を1つにしぼる」ことになります。
user32.asやmod_menu.asの内容を削除したりコメントアウトすることは推奨できません。
コメントアウトしたことを忘れて、「あれ? この命令が使えない?」等となる場合があります。
最も有効なのは、必要な命令が書いてる行だけコピーして、独自のソースとして保存することです。
#uselib "USER32.DLL"
#func global CreateMenu "CreateMenu"
と書けば、USER32.DLLに収録されているCreateMenuという命令が使えるようになります。
#uselib
#func
#cfunc
のヘルプとuser32.as、mod_menu.asの中身を見れば、
WindowsAPIを使うのが実はどれだけ簡単なのかわかります。
とはいえせっかくuser32.as等が用意されているので、完全に覚える必要はなく、
どこをコピーすれば正常に動くのかを知ることができれば問題ありません。
user32.asやmod_menu.as等のファイルは、
C:\Program Files\hspをインストールしたフォルダ\common
に置いてあります。