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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0210
alkaneエラー38に関して。28解決


alkane

リンク

2014/2/10(Mon) 03:14:44|NO.59803

先日、ある程度完成したので友人に体験版と言う形で実行ファイルを送ったのですが
エラー38 まあ、DLLが足りないよって言われました。
その時は 「ああ、"gdi32.as"と"hspdx.as"と"hsp3util.as"と"hspdx.dll"もセットで送らなくちゃいけないんだな」
っていう事で解決したのですが・・・

今度は違う友人に「エラー38が出たよ」って言われました。
中身はその前解決させた時と同じ中身なのですがエラー38が出るというのです。

僕としてはなぜ同じものを配布したのに二人の結果が違うのかが気になります。

一体、何が足りないのでしょうか。また、そのたりないものはどこで手に入るかとか、ソフトを配布する際にどうするとか
いろいろ教えていただけるとありがたいです。


ちなみにそれ以外にIncludeしてるものは無いです。
そして、二人ともHSPはインストールしていません。



この記事に返信する


MillkeyStars

リンク

2014/2/10(Mon) 05:00:02|NO.59804

まさかとは思うけど、DPM 内に DLL ファイルを入れようとしたり、パックファイルに含めたりしてないよね?
含めているなら、exeファイルと別に扱って相手に送ってあげないとだめだよ。

以下、自己必須ファイルパックファイル展開

#include "hspdx.as" //パック内出力(Packfile は、hspdx.dll のコピーを hspdx.dl_ で作ってパックファイルに含める。) #ifdef _DEBUG #else //hspdx.dll exist "hspdx.dll" if strsize == -1{ exist "hspdx.dl_" : DLL_SIZE = strsize sdim DLL_IMAGE,DLL_SIZE bload "hspdx.dl_",DLL_IMAGE,DLL_SIZE bsave dir_exe+"\\hspdx.dll",DLL_IMAGE,DLL_SIZE sdim DLL_IMAGE,1 } //ここまで hspdx.dll の組として扱う。 #endif //絶対に hspdx で使用する命令を呼び出す前に上記パックファイルから展開させるように! es_ini : if stat = 0 : dialog "初期化完了" es_bye : dialog "開放完了"



KA

リンク

2014/2/10(Mon) 06:30:04|NO.59805

使っているhspのバージョンは?
送付方法は?
相手のOSは?

色々考えられるけど、相手がDLLを表示させない環境だったのでは?
(別フォルダーに移動したが、DLLだけ取り残された等)



ZAP

リンク

2014/2/10(Mon) 08:04:19|NO.59806

"*.as"ファイルはexeに組み込まれてるので送る必要なし。
DLLは必ず、EXEファイルとは別に必要(パックしてはダメ)

インクルードしてあるファイル名を列挙すれば原因が判明するかも。



alkane

リンク

2014/2/10(Mon) 12:26:36|NO.59808

>>まさかとは思うけど、DPM 内に DLL ファイルを入れようとしたり、パックファイルに含めたりしてないよね?
それはしていません。身内だったのでしてないだけですが多分してたかもしれなかったです。
いや、してません。

>>使っているhspのバージョンは?
3.3です。


>>送付方法は?
Skypeを使ってZipフォルダにした奴を送りました。


>>"*.as"ファイルはexeに組み込まれてるので送る必要なし。
そうだったんですか……ありがとうございます。




>>相手のOSは?
すいません、そこは確認してなかったです。


>>色々考えられるけど、相手がDLLを表示させない環境だったのでは?
(別フォルダーに移動したが、DLLだけ取り残された等)
フォルダの中がどうなってるかを確認しましたけど、エラーが出なかった人と同じでした。



alkane

リンク

2014/2/10(Mon) 13:20:55|NO.59809

#include という命令(?)で書いたものは
質問の段階で書いた3つのasファイルだけです。

スクリプト内ではTimer、arrayload、Fontadd、の
3つの命令(?)を使用しています。



MillkeyStars

リンク

2014/2/10(Mon) 13:36:32|NO.59810

Fontadd ってなに?
Timer ってなに?

arrayload は、hsp3util の命令なのはわかるんだけど。
不明な命令があるって事は、hspdx.as / gdi32.as / hsp3util 以外って事になるよ?



alkane

リンク

2014/2/10(Mon) 13:42:20|NO.59811

hspdx のほうに……
書きミスですね。 es_timerです。

Fontaddはモジュールの……
ええと


#include "gdi32.as" #module "FontAddResource" // fontを一時的に使えるようにするモジュール(注:インストールはしていません) #deffunc FontAdd str FontFileName // FontAdd "フォントファイル名" fn= FontFileName : pfn=varptr(fn) AddFontResourceA pfn return #deffunc owari onexit RemoveFontResourceA pfn : return #global


これはフリーのフォントを使いたいと思ってネットに上がってるスクリプトをそのまま引用させてもらいました。
もしかして、これが原因なんでしょうか。
でも、そうだとしたら何故他の人はできたのでしょうか。



ちなみにエラーが出た人のPCのOSは7でした。



MillkeyStars

リンク

2014/2/10(Mon) 14:24:40|NO.59813

es_timer も、es_ini での初期化を必要としていないから、問題ないし。
Fontadd もなにも問題ないから、DLL側環境かな。

基本的に、エラー38 は、DLLがなかった場合及び、DLL内の関数がなかった場合に発生するから環境問題だと、gdi32.dll or hspdx.dll 以外は考えられないんだけど、双方ともに Windows 95以降使える関数なので、それも問題ではない。

んー。エラー起こしているのって、7 の人のみ?
もし、7 だけで起こしてるなら、問題は、7 の方が濃厚になるけど。



alkane

リンク

2014/2/10(Mon) 14:30:41|NO.59814

4人の方にやってもらったところ
最初は4人とも"hspdx.dll"がないという事だったのかなと思って送ったら

2人は遊べたのですが残り二人はエラー38が出ました。


OSのほうはまだ一人にしか聞けていないという状況です…


他に問題があるとすればどこになるんでしょうか。



MillkeyStars

リンク

2014/2/10(Mon) 14:52:07|NO.59815

一応、hspdx テスト用で、記事 59804 の自己展開DLL プログラムを作ってみたので、友達に使ってみてね。
それでもエラー 38 になったら、OS側の環境問題以外考えられなくなる。

URL - http://hspsource.wiki.fc2.com/ref/hspdx_Test.zip



alkane

リンク

2014/2/10(Mon) 14:57:16|NO.59816

ええと、これを渡してhspdx_Testのフォルダの中でexeファイルを開けさせればいいんですか?

すいません。
もし、それでエラーが出なかった場合はどうすれば……



MillkeyStars

リンク

2014/2/10(Mon) 15:06:59|NO.59817

普通に実行ファイルを起動すれば、ダイアログが出るだけなので、エラー38が発生しなければOK

どうすればって言われても・・・どうもできないんじゃないかなー。
あなたのPC から、HSP 関連データを持っていって、友達のPCで実際やってみるしかないと思うよ。
問題の切り分けができないというか、原因が不明である場合は、友達の環境でやってみてエラーになれば、友達のPCが原因しか言えない。



MillkeyStars

リンク

2014/2/10(Mon) 15:12:57|NO.59818

というか
>>ええと、これを渡してhspdx_Testのフォルダの中でexeファイルを開けさせればいいんですか?

って、zip を展開しないで、実行しようとしてないだろうね?・・・・
zip の中身を普通のフォルダにコピーしてから実行しないと、エラー38になるのは当然だよ?



alkane

リンク

2014/2/10(Mon) 15:25:50|NO.59819

あ、展開はします。もちろん。


しかし、一部のPCでエラーが出るってことは友人以外への配布って難しいですかね…
最終的には販売するくらいの気持ちで居たのでかなり不安です。



alkane

リンク

2014/2/10(Mon) 17:10:07|NO.59820

結果:1 OSが窓8の友人にテストを渡したら問題はありませんでした。
エラー38も出ませんでした。

そのあと体験版のほうも渡したら問題ありませんでした。



alkane

リンク

2014/2/10(Mon) 17:11:19|NO.59821

追記ですが 窓8の友人は体験版を消すときに下記の物が出るそうです……


https://www.dropbox.com/s/tjkbym8a1nh9nio/SnapCrab_NoName_2014-2-10_16-50-7_No-00.png



alkane

リンク

2014/2/10(Mon) 17:47:07|NO.59823

いえ、記事 59804のほうは何ら問題なく白い画面が出て終わったそうなんです。

ただ、体験版の方では先ほどの画面が出たようなんです。
あれ?私が何か勘違いをしていますか?


ん?あ、あのさっきの記事 59804がエラーを起こさないようにしてるんですね……



テンクス

リンク

2014/2/10(Mon) 17:48:19|NO.59824

画像みれません...。
予想ですけどあれかな?
HSPのバージョンによってはwindows8のみ、exeファイルを終了させた時にランタイムエラー(?)がでますよ。
windows8に対応したhspのバージョンを使用してください。



テンクス

リンク

2014/2/10(Mon) 17:49:28|NO.59825

あ、画像みれた。
やっぱそうだ。



alkane

リンク

2014/2/10(Mon) 17:50:36|NO.59826

はい、ランタイムエラーですね。

8だとそういうことになるんですね・・・ありがとうございます。
ところで対応したバージョンっていくつですか?



テンクス

リンク

2014/2/10(Mon) 17:53:03|NO.59827

わかりませんっ((お役にたてなくてすみません
確か、ダウンロードできるサイトに書いてあった気が...。



alkane

リンク

2014/2/10(Mon) 17:53:57|NO.59828

わかりました。自分で探してみます。
ランタイムエラーに関して有難うございます。


しかし、エラー38はなんなのかはよくわかりません。



MillkeyStars

リンク

2014/2/10(Mon) 17:58:09|NO.59829

というか、なんでエラー表示の実行ファイルパスが、テンポラリフォルダになっているのかが疑問。
通常では、テンポラリフォルダに実行ファイルはないはず。



alkane

リンク

2014/2/10(Mon) 18:07:50|NO.59830

さらに違う友人にも渡してみました。

そしたら「msvcr71がないって言われたし、エラー38もなんか出てきた」って言われました。
あれ?もしかして自分はとんでもない不良品を渡していたのでしょうか。



MillkeyStars

リンク

2014/2/10(Mon) 18:38:58|NO.59831

msvcr71 だと、これかな。
URL - http://www.vector.co.jp/soft/win95/util/se353331.html

対応環境が XP までだから、7/8 には入っていないのは当然っちゃ当然だから、質問者さんが気にする必要もないと思う。
原因が見つかってよかったね。



alkane

リンク

2014/2/10(Mon) 19:15:12|NO.59833

ん?つまりは7/8の人は遊ぶ前にこれをDLしてもらわなければいけないってことですか?

でも、仕方のない事だと分かって助かりました。
いろいろとありがとうございました。



skyblue

リンク

2014/2/11(Tue) 10:08:16|NO.59872

きちんと展開していますか?
windowsではzipファイルを展開せずに中身をみれますので。
7zipで開くのも無しです。画像のランタイムエラーの実行ファイルのパスと
背後の様子を見る限りじゃ展開していないように見えます。7z*.tmpというのは
7zipの一時ファイルのフォルダですので。
zipファイルを解凍していますよね?



alkane

リンク

2014/2/11(Tue) 12:53:25|NO.59879

ちゃんと展開してもらったはずなんですけど……

わかりません。
すいません。



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