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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0123
yamada実行ファイル埋め込みとDPMを別々に利用したい2解決


yamada

リンク

2012/1/23(Mon) 22:47:18|NO.44507

EXEに埋め込んだファイルと、DPM中のファイルを、いっしょに使おうとしています。
以下のスクリプトから実行ファイルを作り、それを実行したところ、Error12を検出しました。


;"1.txt"は"text.dpm"にパックしている #pack "2.txt" notesel a noteload "DPM:text.dpm:1.txt" notesel b noteload "2.txt"

どのような原因が考えられるでしょうか。
よろしければご教授ください。



この記事に返信する


shiva

リンク

2012/1/29(Sun) 16:35:48|NO.44592

結論からいうと、HSPの実装上の仕様です。

まず、次のコードを見てください。


// text.dpm に a.txt が、実行ファイルに b.txt が、 // それぞれ埋め込まれているとします // (A) chdpm "text.dpm" noteload "a.txt" // OK noteload "b.txt" // error // (B) noteload "DPM:text.dpm:a.txt" // OK noteload "DPM:text.dpm:b.txt" // error // (C) noteload "DPM:text.dpm:a.txt" // OK noteload "b.txt" // error (!)

以上3つのコードは、現時点ではすべて同じ意味になります。
yamadaさんの場合は (C) と同じパターンですね。

簡単に原因を書くと、"DPM:[dpm]:[file]" の形式でファイルが指定されたときに、
ランタイムが内部で chdpm "[dpm]" と同じ処理をしてしまうことにあります。
(これまで開いていた DPM を閉じて、新しい DPM を開きっぱなしにしている)

もしかしたら、ランタイムのバグかもしれません。
正確なところはおにたまさんに聞かなければ分かりませんが。

実行ファイルを対象に chdpm や "DPM:" が使えたらよかったのですが、それもできなさそうなので、
yamadaさんの考える使い方は、残念ながら現在のHSPではできないようです。



yamada

リンク

2012/1/30(Mon) 19:18:28|NO.44611

shiva様ありがとうございました。大変わかりやすい説明でした。



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