この記事は、最後の更新から2515日を超えています。

2018.3.21

【HSP】#packoptでアイコンを埋め込む際の検証


概要

HSPの3.5より、#packoptを使うことで、実行ファイルの自動作成時にアイコンを埋め込むことができるようになりました。

しかし、この機能を使って作成した実行ファイルが実行できない場合があったので、どのような状況で実行できなくなるかを軽く検証してみました。

ちなみに実行できない場合は、以下のようなウィンドウが出てきます。dllなどの起動に必要なファイルが見つからない時とかによく出るウィンドウですね。

#packoptについて

#packoptでアイコンを埋め込む際は以下のように記述します。

#packopt icon "アイコンファイル名"

これでアイコンファイル(拡張子.ico)を指定することで、そのアイコンを実行プログラムのアイコンにすることができます。

しかし、このアイコンファイルのパスを直下のディレクトリ以外で指定した際に、エラーが出たり出なかったりします。

検証用プログラム

検証は、以下のようなプログラムで行いました。


#packopt hide 1

#packopt icon "ここにアイコンファイルのパス"

#packopt upx "0"

screen 0,400,300
title "起動できました"
stop

検証結果

●実行できなかった
#packopt icon "icon¥¥icon_file.ico"
#packopt icon "..¥¥icon¥¥icon_file.ico"

●実行できた
#packopt icon "アイコン¥¥icon_file.ico"
#packopt icon "iconアイコン¥¥icon_file.ico"
#packopt icon "アイコンicon¥¥icon_file.ico"
#packopt icon "icon¥¥アイコン¥¥icon_file.ico"
#packopt icon "アイコン¥¥icon¥¥icon_file.ico"

まとめ

ちょっと雑な検証ですが、どうやらディレクトリに全角文字が含まれている場合はきちんと実行できているみたいです(全角記号は未検証)

日頃プログラムを組んでいる身としては、パス中にできるだけ全角文字を入れないようにしているのですが、まさか半角英字がダメで、全角ならOKになるとは思いませんでした。

時間があるときに詳しく書かれている記事でも探してみようと思います。


関連記事