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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0730
す(たびたびすみません)hspda.dllとはなんですか? 使い方は?23解決


す(たびたびすみません)

リンク

2021/7/30(Fri) 23:30:11|NO.93390

vsave "ファイル名" vload "ファイル名" を使っても何も変わらず、調べたら、hspda.dllを
同じ場所に入れろとあったのですが、そもそもhspda.dllが何でどこからにゅうしゅできるのか
がわからず、悩んでいます。たびたび質問してすみません。



この記事に返信する


リンク

2021/7/30(Fri) 23:35:01|NO.93391

ちなみにファイル名は "savefile" です。一応savefileという名前の 種類 ファイル と
なっているファイルができていました。しかし、セーブして、ロードしても、初期化されて
しまいます。 #include "hspda.as" は入れてあります。



わたしです

リンク

2021/7/31(Sat) 00:23:30|NO.93394

HSPと頭についているDLLは大体HSP用に作られているDLLです。
HSPように作っているDLLの場合は、当然HSPをダウンロードしたときに一緒に入ってます。

http://www.onionsoft.net/hsp/v33/doclib/plugin.htm#HSPDA
公式のサイトです。
どんんものなのか、詳細はこちらを参照するのが良いかと思います。

ちなみに、DLLはHSPのであれば大抵DLL名を検索すれば情報が出てくる他、
今回のvsaveのようなDLLが必要な命令は、
HSPスクリプトエディタで「F1」キー入力時に開くヘルプ(HSP Docs Library)で、
「解説」上部に「(プラグイン / モジュール : hspda)」といった形で記載されてますので、
その命令使用時に何のDLLが必要かはここで分かります。



リンク

2021/7/31(Sat) 16:11:26|NO.93400

わたしですさんの説明で理解はできたのですが、なぜか
vsave か、 vload を使っても、セーブロードができず、しかも、exe化すると、
ーーーーーーーーーーーーーーーーーーーーーーー
|Error                   ×|
|                       |
|  /\ #Error 38               |
| /! \ ー>内部エラーが発生しました(38)   |
| --------                  |
|               __________   |
|               |  OK  |   |
----------------------------------------------
と出て使えません。



Crystal

リンク

2021/7/31(Sat) 17:51:51|NO.93401

どんな状況であるかはわかりませんがみたところ、hspda.dllが.hspのファイルと同じ
場所にないからではないでしょうか?
例えば、C:\User\<<USER NAME>>\Desktop\Sampleに実行させたいHSPソースファイル(sample.hsp)
があるとします。
先ほどのディレクトリ(C:\User\<<USER NAME>>\Desktop\Sample)にhspda.dll
を入れてみて再度実行してみてはどうでしょうか?
ダメであれば、ソースを以下のようにしてみてください。
<sample.hsp>

#include "hspda.dll" #pack "hspda.dll"
同じ場所に入れないといけないというのは、Ctrl+F9あるいは実行ファイルを作成と
行って出力されたEXEファイル(#packopt指定がない場合大抵hsptmp.exe)となっているので
そのEXEファイルが保存されているフォルダあるいは場所にhspda.dllをコピーします。
hspda.dllは、HSPのフォルダ(c:\hsp〇〇\common)に保存されていますのでコピーします。
この時、移動を行ってしまうと、新しいファイルでhspdaを使う場合に利用できなくなり
ます(HSPは、HSPフォルダ\commonにある.as、.dllを#include命令で読み込んでいるため)
のでお気を付けください。



Crystal

リンク

2021/7/31(Sat) 17:54:12|NO.93402

>93401
これで解決しない場合、以下のドキュメントのインストール方法を参考にしてください。
http://www.onionsoft.net/hsp/v33/doclib/hspda.txt



わたしです

リンク

2021/7/31(Sat) 19:20:42|NO.93403

exe化してエラーが出るのに関しては
>>93401の方法で解決すると思います。
exe化していない状態でセーブができないのは別問題な気もします...
セーブできないと一口に言っても、
・〇〇というエラーが出てセーブできない
・エラーは出ないけどファイルが作成されてない
・エラーは出ずファイルも作成されてるけど、ファイルの内容が空白
など、いろいろあると思うので...
とりあえず↑を試してもらってからですかね。

出来れば問題が再現できる簡潔なスクリプトを掲載し、
このスクリプトを実行すると○○な状態になり、期待通り動作しない
のように、詳しい状態を記載してくれると分かりやすいです



リンク

2021/7/31(Sat) 19:53:12|NO.93405

えっと、.asだけでなく、.dllもひつようですか?(hsp.asしかなかった)



沢渡

リンク

2021/7/31(Sat) 20:17:46|NO.93406

hspda.asは自作のexeと同じフォルダに置く必要はありません。
自作のexeと同じフォルダに置かなくてはいけないのはhspda.dllの方です。
hspda.dllはHSPをインストールしたフォルダ(たとえば私の環境だとc:\hsp351)にありますので、
そこからコピーしてください。



リンク

2021/7/31(Sat) 20:48:23|NO.93409

かなり探したらhsp.dll ありました。
しかし、#include "hspda.dll" と書くと、結果レポートで


#HSP script preprocessor ver3.5 / onion software 1997-2017(c)
#Use file [hspdef.as]
#HSP code generator ver3.5 / onion software 1997-2017(c)
hspda.dll(1) : error 2 : 文法が間違っています (1行目)
--> mz・"hspda.dll"
とでてしまいます。

同じファイルにhspda.dllはちゃんと入っています。



沢渡

リンク

2021/7/31(Sat) 21:33:48|NO.93410

「#include "hspda.dll"」というのは書いてはいけませんよ。
「#include "hspda.as"」が正しいです。
#includeというのは他のhspのソースコードをその部分に割り込ませる命令ですので。
(hspをインストールしたフォルダのcommon以下にあるhspda.asをエディタで開けば、
中身はhspで書かれているのがわかると思います)



沢渡

リンク

2021/7/31(Sat) 21:38:59|NO.93411

ちょっと混乱してるかもしれないので、やるべきことをまとめますと、
・ソースコードの冒頭に書くべきなのは「#include "hspda.as"」
・自作のEXEと同じフォルダに入れるファイルは「hspda.dll」
このような感じです。

「vsave か、 vload を使っても、セーブロードができず」というのはそれとは別の問題なので、
まずは以上をクリアするところから始めていただければと。



リンク

2021/7/31(Sat) 21:44:30|NO.93412

沢渡さん わかりやすく書いていただきありがとうございました。了解いたしました。



リンク

2021/7/31(Sat) 21:47:32|NO.93413

次に聞きたいことなんですけど、 .save とつけて、 SAVEファイル形式にしたほうが
よいですか?
MIDORIKAWA氏のヘビ電卓では、SAVEファイルだったので。



MIZUSHIKI

リンク

2021/7/31(Sat) 23:33:43|NO.93414

まずサンプルを見て、どのように使えば良いかを確認しましょう。

1. HSPエディタに「vsave」と書いて、F1キーを押すとヘルプが出てきます。
2. ヘルプの下のほうに「サンプル逆引き」の項目があるので、その中の「vtest1.hsp」(または「vtest2.hsp」)をクリック。
3. ここで内容が確認できますが、さらに踏み込んで上部に「 sample\hspda\ vtest1.hsp」と書いてある所の『vtest1.hsp』をクリック。
4. サンプルスクリプトがエディタで開きますので、F5(実行)して動作を確認!

HSPの命令で「どう使えば良いんだろう」と悩んだら、まずサンプルスクリプトが無いか探してみましょう。
(たぶん公式のサンプルがどこにあるか知るまでが、初心者には気づき辛いところもあるかも。)

上記が簡単な探し方かな と思いますが、「C:\hsp351\sample\」の中にたくさんサンプルがあります。
サンプルを試してみるだけでも、どんなことが出来るのか分かって楽しいのでぜひ色々と探ってみてください。

>.save とつけて、 SAVEファイル形式にしたほうが よいですか?
公式のサンプルは「.var」になっていますが、どんな拡張子でも大丈夫ですし、「拡張子なし」でも大丈夫です。
ご自分のアプリに合った拡張子を付けてみましょう。



リンク

2021/8/1(Sun) 14:24:27|NO.93416

ちなみにできたファイルをメモ帳で開くとこうなっています。何をしてもです。
{hspv   } ({}はふくまれず)
□は 半角の・です。



わたしです

リンク

2021/8/1(Sun) 15:20:33|NO.93417


#include "hspda.as";DLL読み込み test="テスト用";変数[test]に文字入れる vsave_start;変数保存する為 vsave_put test;変数[test]を保存する変数として指定 vsave_end "test.txt";[test.txt]として変数保存、終わり dialog ""+dir_cur+"に保存しました" test=0;一旦変数[test]の中身を0にする dialog test;変数[test]の中身が0になった事を確認する vload "test.txt";[test.txt]を読み込む dialog test;変数[test]の中身を見てみる
状況がつかめないので簡単なスクリプト書いてみました。
上記、実行してみて、正しく動作するでしょうか?
ダイアログで「0」と出た後、最終的にダイアログで「テスト用」と表示されれば
hspcvの機能自体は問題なく動作してると思うので、
すさんが作成したスクリプトがどこかおかしいことになってるのかなと思います。

ちなみに、上記スクリプト実行にあたって、テスト用にファイル保存してある場所は、
最初のダイアログで表示される「〜に保存しました」と記載されるところの
フォルダに保存されています。確認終わったら削除してください。



沢渡

リンク

2021/8/1(Sun) 17:20:40|NO.93418

今試してみたところ、vloadって存在しないファイルを指定してもエラーにならないのですね。
となると、vsaveとvloadでファイル名や保存場所が違うというケースもあり得るかもしれません。

>できたファイルをメモ帳で開くとこうなっています。何をしてもです。
>{hspv   } ({}はふくまれず)
>□は 半角の・です。
vsaveで保存するファイルはバイナリファイルなのだから、文字に変換できないバイトは
みんな"・"に置き換えられて表示されるので、不審な話ではないでしょう。



リンク

2021/8/1(Sun) 18:33:06|NO.93419

私ですさん でました。



リンク

2021/8/1(Sun) 18:37:36|NO.93421

もしかしてsaveって画面全体ほ状態とかって保存できなかったりしますか?



沢渡

リンク

2021/8/1(Sun) 18:47:08|NO.93423

vsaveやvloadで扱えるのは変数の内容だけですが。
ヘルプのvsaveやvloadの項目は読んでいますか?



わたしです

リンク

2021/8/1(Sun) 19:07:09|NO.93425

なるほど、結論は沢渡さんも言っている
>>93423でしたね。
沢渡さんの言ってる通りエディタ内で「F1」キーを入力でヘルプが見れるので、
一度読んでみてください。画面を保存するには
「cvsave」等、別のものを使用するほかありません。

尚、>>93420 についても、
前に沢渡さんが教えてくれている通り、
vsaveはテキストとしてではなく、バイナリとして保存されているので、
テキストファイルで読もうとしても、保存された内容そのものが見れるわけではありません。

余談ですが、
元のスレッドタイトル、「現在の状態をすべて保存する方法を教えてください!」ですが、
使用している命令文から「変数をすべて保存したい」と思い込んでいたものの、
今回の内容であれば、
「現在の画面を画像ファイルとして保存したい」とかの方が
よりスムーズに意図が伝わったかもしれませんね。結果論ですが。



リンク

2021/8/1(Sun) 19:26:40|NO.93426

沢渡 さん 難しいことは、何も考えずにすべての変数データを保存したい場合には、
の "何も考えずにすべて"というところが印象に残り、変数という言葉をすっ飛ばし、把握した
つもりになってしまってました。
自分は、こういうところが多いので、やはり気を付けないとと改めて実家インしました。

わたしですさん button や、mes や、 picload でやったものを、そのまま保存したかった
です。でも、そんな楽にできる命令はないと思うので、変数でどうにかできるようにしたいと
思います。

みなさん、自分の勘違いで付き合わせてしまって、すみませんでした。本来なら93411<<で解決
してた問題でしたから...
また、ありがとうございました。


あと、まったく関係ないのですが、自分のPCだと、F1を押すと、windows 10 でヘルプを表示する方法
がブラウザでけんさくされてしまいます。シフトを押しても、反応なしです。



わたしです

リンク

2021/8/1(Sun) 19:40:43|NO.93427

解決、という事で良い気もするのですが、
超余談という事で一応...

ヘルプの件ですが、「F1」を押す、というのは
どんな状態でもいいから「F1」を押すのではなく、
「HSPスクリプトエディタ」がアクティブな状態で「F1」を押すという事です。
検索されるという動作については、
タスクバーやデスクトップがアクティブな状態での動作となり、仕様です。
一度エディタ内をクリックした状態(文字を入力したらエディタに書き込まれる状態))
で「F1」を入力してみてください。
尚、シフトキーはヘルプ表示に全く関係ありません。

>>button や、mes や、 picload でやったものを、そのまま保存したかった
ボタンなども含めて保存したいんですかね?
純粋にペイントの機能として描いた絵を保存したいだけであれば
先程記載した通り、一度「cvsave」を調べて、試してみてください。
恐らく変数で何とかするより非常に楽にやりたいことが実現できると思います。

と、既にタイトル内容から話題が逸れているのでこの辺にしておきます。



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