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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0321
piyo_piyoDPMが読み込めない8解決


piyo_piyo

リンク

2014/3/21(Fri) 04:22:22|NO.60800

スクリプトで使用するファイルをDPMにしていますが、スクリプトから読み込めません。
スクリプト内で使用するファイルをDPMに、start.axをexeに埋め込むにはどうすればいいのでしょうか?
DPMとexeは以下の手順で作成しました

1. packfile編集でスクリプト内で使用するファイルを暗号化して追加する
2. DPM作成でdata.dpmを作成する
3. 作成されたdata.dpmを一旦、別の場所に退避させる
4. start.axを作成する
5. packfile編集でstart.axのみを追加する
6. exeファイル作成でexeを作成する

以上のような手順でdata.dpmと実行ファイルを作成すると、data.dpm内のファイルを読み込めないようなのですが、
作り方が間違っているのでしょうか? 正しい手順をどなたか教えて下さい。よろしくお願いします。



この記事に返信する


あり

リンク

2014/3/21(Fri) 11:46:21|NO.60804

DPMファイルの作成は
1.PACKFILE編集でDPMファイルにパックするファイルを指定(暗号化はしなくてよい)
2.DPMファイル作成でdata.dpmを作成。
でOKです。
DPMにはpackfileで指定したファイルが格納されるのでstart.ax等は指定する必要ありません。
(パックするファイル名は半角英数で8文字以内にするのが無難です)

また、暗号化を行う場合はスクリプトからpack_make命令を使って
DPMファイルを作成してください。


DPMファイル読み込みについては
DPMファイルが複数存在する場合、HSPは標準ではdata.dpmから読み込むので
他のDPMファイル内のファイルを読み込む場合はchdpmを使って
読み込むDPMファイルを指定するか、読み込むファイル名の記述時に
DPMファイルを指定する事で読み込む事が出来ます。
(詳細はchdpmの説明にあります)

DPMファイル作成サンプル(暗号化しないならメニューから作成でOK)
(packfileにsample.bmpを指定したとする)

#include "hspcmp.as" hsc_ini "" ; hspcmpの初期化 pack_ini "testdata" ; 作成するDPMファイル名(拡張子.dpmは省略可) pack_make 1, 0 ; 暗号化する場合第2引数に暗号化キーを指定

DPM読み込みサンプル(二通り)

chdpm "testdata.dpm" ; 暗号化した場合ここで暗号化キーも指定 screen 0 picload "sample.bmp" screen 1 picload "DPM:testdata.dpm:sample.bmp" ; この方法では暗号化データは読み込めない



piyo_piyo

リンク

2014/3/21(Fri) 19:44:47|NO.60812

質問が正しく伝わっていないような気がしますが・・・
暗号化したDPMはツールメニューの「DPMファイル作成」では作成できないということでしょうか?
実際、メニューから暗号化したDPMを作成するとexeから読み出せません。

HSP3プログラミングマニュアルのPACKFILEと暗号化の所で3通りの方法が示されています。
1番目:実行ファイルに暗号化してパック
この方法は分かります。
2番目:DPMファイルに暗号化してパック(1)
この方法が分かりません。メニューからDPMを作成しても実行ファイルから読み出せません。
3番目:DPMファイルに暗号化してパック(2)
この方法もできます。

2番目だけが分かりません。どなたか、手順を教えて下さい。
(ありさんにご回答頂いた方法では出来ませんでした)



あり

リンク

2014/3/22(Sat) 00:00:49|NO.60815

改めて調べたところ、NO.60804の方法では
暗号化したDPMファイルは作れませんでした、すみません。

自分でDPMファイルを作る場合の手順は
1.packfile編集で暗号化にチェックを入れてファイル追加。
 (追加したファイル名の頭に『+』が付くと暗号化される)
2.HSP標準の暗号化キーを使う(2番目の方法):メニューからDPMファイル作成。
  独自の暗号化キーを使う(3番目の方法):pack_makeで暗号化キーを指定してスクリプトから作成。
ですが、ツールメニューの下の方にある
『指定フォルダからDPMファイル作成』で起動するmkdpmを使った方が
簡単に暗号化DPMが作れますね。


読み込みは、独自の暗号化キーを使っていないdata.dpm
(DPMファイル作成で作った暗号化DPMファイルと同じ)であれば
特にDPMファイル名の指定をしなくても自動でDPMファイルの内容を
読み込んでくれます。
(exeファイル内に同名のファイルがパックしてあるとそちらの読み込みが優先されます)

独自の暗号化キーを使っているか、複数のDPMファイルを使い分ける場合のみ
chdpmでDPMファイル名と暗号化キーを指定してください。



あり

リンク

2014/3/22(Sat) 00:27:28|NO.60816

DPMファイルが読み込めないのは
packfileの編集がうまくいっていないか
暗号化キーの設定が間違っているなどの理由で
DPMファイルの作成又は読み込みが失敗しているものと思われます。

ちなみにpackfileはテキストファイルなので
テキストエディタやHSPスクリプトエディタで読み込むと
中身が確認できます。



piyo_piyo

リンク

2014/3/22(Sat) 06:12:24|NO.60817

> 自分でDPMファイルを作る場合の手順は
> 1.packfile編集で暗号化にチェックを入れてファイル追加。
>  (追加したファイル名の頭に『+』が付くと暗号化される)
> 2.HSP標準の暗号化キーを使う(2番目の方法):メニューからDPMファイル作成。

この通りにDPMを作成しているのですが、やはり読み込めません。
サンプルのmkpack.hspを実行し、暗号鍵に0を指定してDPMを作成し、
スクリプト内でchdpm "data.dpm",0; とすると、エラーは出ませんが正しく復号化できないようです。
暗号化するときに指定した鍵とchdpmの第2パラメーターに指定した鍵が一致しているにも関わらず、復号化できません。
ちなみに、chdpm "data.dpm",0; のかわりに chdpm "data.dpm"; とすると復号化できるようです。
pack_make 1,0 で作成したDPMは chdpm "data.dpm",0 ではなく chdpm "data.dpm" にしないといけないようです
復号化の際に正しい鍵を指定しても復号化できないのはバグでしょうか? それとも仕様?

サンプルのmkpack.hspで一応はDPMを作成できましたが、何か釈然としません・・・
メニューから暗号化したDPMを作成できるようにして欲しい・・・



doko

リンク

2014/3/22(Sat) 08:24:21|NO.60818

>スクリプト内でchdpm "data.dpm",0; とすると、エラーは出ませんが正しく復号化できないようです。
pack_makeのヘルプより
>p2に0を指定した場合は、標準の暗号化によるDPMファイル(2.61互換)を作成します。
>p2に0以外を指定した場合は、その値をキーとする暗号化を施します。
なのでそのファイルは暗号化キーを指定していないことになる
そしてchdpmのp1のデフォルト値は-1
以上よりそれは仕様

>暗号化したDPMはツールメニューの「DPMファイル作成」では作成できないということでしょうか?
chdpm のヘルプより
>暗号化キーを指定したDPMファイルは、スクリプトから直接生成する必要があります
とあるから仕様



あり

リンク

2014/3/22(Sat) 09:26:00|NO.60819

メニュー『DPMファイル作成』で作ったDPMファイルは
暗号化してあってもHSPが自動で復号化して読み込む仕様です。
つまり読み込み時に暗号化キーの指定は必要ありません。
なので
>chdpm "data.dpm",0; のかわりに chdpm "data.dpm"; とすると復号化できるようです。
は正常な動作になります。

読み込み時に暗号化キーが必要になるのは
『PACKFILE編集』で暗号化をチェックしてファイルを追加し
pack_makeの第2引数に【0以外の整数を指定して】DPMファイルを作成した場合だけです。
pack_makeの暗号化キーに0を指定すると『DPMファイル作成』での暗号化と同じになるので
読み込み時に暗号化キーを指定すると復号化できません。
(この場合でも『PACKFILE編集』での暗号化チェックは必要)



余談ですが
テキストファイルは復号化できなくても読み込み可能なんですね
今までずっと画像ファイルでテストしてた(失敗時にエラーが出る)ので
気づきませんでした・・・(汗)



piyo_piyo

リンク

2014/3/22(Sat) 18:35:12|NO.60831

皆さん、ありがとうございました。
とりあえず、DPMの作成と読み込みができるようになりましたので、解決とします。

が、DPMの作り方がすごくややこしいです。ヘルプを探してみたけど詳しく書いてない?
それとも自分が見落としてるだけ?
サンプルのmkpack.hspにも詳しいコメントがないし・・・
せめて、exeやDPMの作成方法や注意点をわかりやすく詳しく書いて欲しいです・・・



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