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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0918
しょうけい【急募】謎のエラーでコンパイルすら出来ない16解決


しょうけい

リンク

2016/9/18(Sun) 13:32:17|NO.76896

現在、ちょっとしたアクションゲームを作っていまして
それを一度試そうと思って コンパイルしようとしたら

下記の様なエラーになりまして・・・


問題の署名:
問題イベント名: BEX
アプリケーション名: hsed3.exe
アプリケーションのバージョン: 3.3.1.0
アプリケーションのタイムスタンプ: 54196142
障害モジュールの名前: hspcmp.dll
障害モジュールのバージョン: 0.0.0.0
障害モジュールのタイムスタンプ: 53c61e3d


↑正直どこに問題があるのかさっぱりな状態です。

今作ってるアクションゲーム以外だと無事コンパイルできたので たぶん
今作ってるやつのどこかに問題があるのだろうとまで考えれましたが
そこから先はさっぱりです。
今迄はコンパイル出来ていたので たぶん、ソースの中に問題があるのだろうと思ったので
ソースを貼ります。


#packopt name "PutitAction" screen 0,400,300 #module #defcfunc mapcheck int nowx, int asimotox return (nowx + asimotox) / 32 #defcfunc movecheck int nowx, int nowy, int asimotox, int asimotoy, int maxx, int maxy, array stagemap if mapcheck(nowx, asimotox) < 0 or mapcheck(nowx, asimotox) >= maxx : return 1 if mapcheck(nowy, asimotoy) < 0 or mapcheck(nowy, asimotoy) >= maxy : return 0 return stagemap(mapcheck(nowx, asimotox), mapcheck(nowy, asimotoy)) #global celload "mainchar.png", 1 : celdiv 1, 32, 32 celload "stage.png", 2 : celdiv 2, 32, 32 celload "enemy_s.png", 3 : celdiv 3, 32, 32 stagewide = 0 : stagehigh = 0 : nowstage_posx = 0 : nowstage_posy = 0 nowchar_posx = 32 : nowchar_posy = 200 mainchar_grv = 0 : mainchar_speed = 0 : damege_cnt = 0 dim dairi, 5 : movestick = 0 temp = 0 enemymem = "" : charvalue = 0 //エネミーデータロード notesel enemymem noteload "edata.txt" : charvalue = noteinfo(0) enemydata = "" : enemy_loadstock = "" : enemy_sidestock = "" : enemy_animestock = "" //先頭画像番号:行動パターン:移動タイプ:上判定,下判定,右判定,左判定:スコア:ダメージ判定:アニメーション切り替え1,2…:フラグ:引数数 //移動タイプ(0=歩行:1=飛行) //ダメージ判定(0=通常:1=投擲物のみ:2=無敵:3=即死:4=最弱) dim e_drawhead, charvalue : dim e_pattern, charvalue : dim e_movetype, charvalue dim e_head, charvalue : dim e_legg, charvalue : dim e_left, charvalue : dim e_right, charvalue dim e_score, charvalue : dim e_dcheck, charvalue repeat charvalue noteget enemydata, cnt split enemydata, ":", enemy_loadstock e_drawhead(cnt) = int(enemy_loadstock(0)) : e_pattern = int(enemy_loadstock(1)) : e_movetype(cnt) = int(enemy_loadstock(2)) split enemy_loadstock(3), ",", enemy_sidestock e_head(cnt) = int(enemy_sidestock(0)) : e_legg(cnt) = int(enemy_sidestock(1)) e_left(cnt) = int(enemy_sidestock(2)) : e_right(cnt) = int(enemy_sidestock(3)) e_score(cnt) = int(enemy_loadstock(4)) e_dcheck(cnt) = int(enemy_loadstock(5)) loop stagedata = "" : loadstage_check = "" : stagemem = "" stagecheck_check = "" : stagedraw_check = "" : enemyreload_check = "" sdim loadstage_check, 99, 999 dim stagemap, 10, 10 : dim stagedraw, 10, 10 //ステージデータロード notesel stagemem noteload "stagedata.mwd" : stagehigh = noteinfo(0) noteget stagedata, 0 split stagedata, ",", loadstage_check stagewide = stat; dim stagemap, stagewide, stagehigh : dim stagedraw, stagewide, stagehigh dim enemyreload, stagewide, stagehigh ENEMY_CNTMAX = stagewide * stagehigh * 15 / 10 dim es_mode, ENEMY_CNTMAX //敵キャラの状態(0=存在しない 1=生存 2=死亡 3=ダメージ) dim es_time, ENEMY_CNTMAX //タイマー dim es_spee, ENEMY_CNTMAX //横スピード dim es_grvi, ENEMY_CNTMAX // dim es_char, ENEMY_CNTMAX //キャラの種類 dim es_patt, ENEMY_CNTMAX //キャラのAIの内容 dim es_posx, ENEMY_CNTMAX //X座標 dim es_posy, ENEMY_CNTMAX //Y座標 dim es_move, ENEMY_CNTMAX //行動パターン dim es_head, ENEMY_CNTMAX //判定↑ dim es_legg, ENEMY_CNTMAX //判定↓ dim es_left, ENEMY_CNTMAX //判定← dim es_right, ENEMY_CNTMAX //判定→ temp = 0 : nowCE = 0 repeat stagehigh noteget stagedata, cnt split stagedata, ",", loadstage_check for dairi(0), 0, stagewide split loadstage_check(dairi(0)), ":", stagecheck_check, stagedraw_check, enemyreload_check stagemap(dairi(0), cnt) = int(stagecheck_check) stagedraw(dairi(0), cnt) = int(stagedraw_check) dairi(1) = int(enemyreload_check) - 1 if dairi(1) >= 0 { es_mode(temp) = 1 es_time(temp) = 0 // es_char(temp) = e_drawhead(dairi(1)) es_patt(temp) = e_pattern(dairi(1)) es_posx(temp) = dairi(0) * 32 es_posy(temp) = cnt * 32 es_move(temp) = e_movetype(dairi(1)) es_head(temp) = e_head(dairi(1)) es_legg(temp) = e_legg(dairi(1)) es_left(temp) = e_left(dairi(1)) es_right(temp) = e_right(dairi(1)) temp++ } next loop *main while redraw 0 stick movestick, 5; gosub *mapchip_draw gosub *chardraw gosub *enemy_draw gosub *damege_check gosub *mainchar_move gosub *movescreen redraw 1 await 16 wend ////////////////////////////////////////// ///////////////////////////////////////// //////////////////////////////////////// *mapchip_draw for dairi(0), mapcheck(nowstage_posx, 0), mapcheck(nowstage_posx, 0) + 14 if dairi(0) >= stagewide : _break for dairi(1), mapcheck(nowstage_posy, 0), mapcheck(nowstage_posy, 0) + 11 if dairi(1) >= stagehigh : _break pos (dairi(0) - mapcheck(nowstage_posx, 0)) * 32 - (nowstage_posx\32), (dairi(1) - mapcheck(nowstage_posy, 0)) * 32 - (nowstage_posy\32) celput 2, stagedraw(dairi(0), dairi(1)) next next return *chardraw pos nowchar_posx - nowstage_posx, nowchar_posy - nowstage_posy if damege_cnt/5\2 = 0 { gmode 2 : celput 1, 0 } return *enemy_draw repeat ENEMY_CNTMAX if es_mode(cnt) = 0 : continue if es_posx(cnt) - nowstage_posx < - 64 || 400 < es_posx(cnt) - nowstage_posx : continue if es_posy(cnt) - nowstage_posy < - 64 || 300 < es_posy(cnt) - nowstage_posy : continue pos es_posx(cnt) - nowstage_posx, es_posy(cnt) - nowstage_posy gmode 2 : celput 3, es_char(cnt) loop return *mainchar_move temp = movecheck(nowchar_posx, nowchar_posy, 15, 32, stagewide, stagehigh, stagemap) if temp = 1 or temp = 3 { if movestick&16 : mainchar_grv = -30 } if movecheck(nowchar_posx, nowchar_posy, 26, 15, stagewide, stagehigh, stagemap) != 1 & movestick = 4 { mainchar_speed++ } if movecheck(nowchar_posx, nowchar_posy, 3, 15, stagewide, stagehigh, stagemap) != 1 & movestick = 1 { mainchar_speed-- } if damege_cnt < 140 { if mainchar_speed > 0 & movestick != 4 : mainchar_speed-- if mainchar_speed < 0 & movestick != 1 : mainchar_speed++ } switch movecheck(nowchar_posx, nowchar_posy, 15, 32, stagewide, stagehigh, stagemap) case 0 mainchar_grv++ swbreak case 3 temp = mapcheck(nowchar_posy, 32) * 32 if nowchar_posy + 31 < temp - 1 or temp + 5 < nowchar_posy + 31 { mainchar_grv++ } swbreak case 4 temp = 0 mainchar_grv = -31 if damege_cnt = 0 { if mainchar_speed > 0 & temp = 0 : mainchar_speed = -25 : temp = 1 if mainchar_speed < 0 & temp = 0 : mainchar_speed = 25 : temp = 1 damege_cnt = 160 } swbreak swend if movecheck(nowchar_posx, nowchar_posy, 15, 0, stagewide, stagehigh, stagemap) = 1 { mainchar_grv++ repeat if movecheck(nowchar_posx, nowchar_posy, 15, 0, stagewide, stagehigh, stagemap) != 1 : break nowchar_posy++ loop } //////////////////////////////////右判定 switch movecheck(nowchar_posx, nowchar_posy, 25, 15, stagewide, stagehigh, stagemap) case 1 mainchar_speed = 0 repeat if movecheck(nowchar_posx, nowchar_posy, 25, 15, stagewide, stagehigh, stagemap) != 1 : break nowchar_posx-- loop swbreak case 4 mainchar_grv = -21 if damege_cnt = 0 : mainchar_speed = -30 : damege_cnt = 160 swbreak swend //////////////////////////////////左判定 switch movecheck(nowchar_posx, nowchar_posy, 4, 15, stagewide, stagehigh, stagemap) case 1 mainchar_speed = 0 repeat if movecheck(nowchar_posx, nowchar_posy, 4, 15, stagewide, stagehigh, stagemap) != 1 : break nowchar_posx++ loop swbreak case 4 mainchar_grv = -21 if damege_cnt = 0 : mainchar_speed = 30 : damege_cnt = 160 swbreak swend /////////////////////////////////////下判定 switch movecheck(nowchar_posx, nowchar_posy, 15, 31, stagewide, stagehigh, stagemap) case 1 mainchar_grv = 0 repeat if movecheck(nowchar_posx, nowchar_posy, 15, 31, stagewide, stagehigh, stagemap) != 1 : break nowchar_posy-- loop swbreak case 3 temp = mapcheck(nowchar_posy, 31) * 32 if temp <= nowchar_posy + 31 & nowchar_posy + 31 <= temp + 6 & mainchar_grv >= 0 { mainchar_grv = 0 repeat if temp > nowchar_posy + 31 : break nowchar_posy-- loop } swbreak case 4 repeat if movecheck(nowchar_posx, nowchar_posy, 15, 31, stagewide, stagehigh, stagemap) != 4 : break nowchar_posy-- loop swbreak swend nowchar_posx += mainchar_speed/4 nowchar_posy += mainchar_grv/4 if mainchar_grv > 30 : mainchar_grv = 30 if mainchar_speed > 12 & mainchar_speed < 20 : mainchar_speed = 12 if mainchar_speed < -12 & mainchar_speed > -20 : mainchar_speed = -12 return *movescreen if nowchar_posx - nowstage_posx > 118 & nowstage_posx + 400 < stagewide * 32 : nowstage_posx++ if nowchar_posx - nowstage_posx < 150 & nowstage_posx > 0 : nowstage_posx-- if nowchar_posx - nowstage_posx > 168 & nowstage_posx + 400 < stagewide * 32 : nowstage_posx = nowchar_posx - 168 if nowchar_posx - nowstage_posx < 100 & nowstage_posx > 0 : nowstage_posx = nowchar_posx - 100 if nowchar_posy - nowstage_posy > 240 & nowstage_posy + 300 < stagehigh * 32 : nowstage_posy++ if nowchar_posy - nowstage_posy < 100 & nowstage_posy > 0 : nowstage_posy-- if nowchar_posy - nowstage_posy > 268 & nowstage_posy + 300 < stagehigh * 32 : nowstage_posy = nowchar_posy - 268 if nowchar_posy - nowstage_posy < 50 & nowstage_posy > 0 : nowstage_posy = nowchar_posy - 50 return *damege_check if damege_cnt > 0 { damege_cnt-- } return *enemy_AI_base return; *enemy_AI_walk temp = movecheck(es_posx(nowCE), es_posy(nowCE), (es_right(nowCE) + es_left(nowCE))/2, es_legg(nowCE) + 1 , stagewide, stagehigh, stagemap) if temp = 1 or temp = 3 { } if movecheck(es_posx(nowCE), es_posy(nowCE), es_right(nowCE), (es_head(nowCE) + es_legg(nowCE))/2, stagewide, stagehigh, stagemap) != 1 { } if movecheck(es_posx(nowCE), es_posy(nowCE), es_left(nowCE), (es_right(nowCE) + es_left(nowCE))/2, stagewide, stagehigh, stagemap) != 1 { } //if mainchar_speed > 0 & movestick != 4 : mainchar_speed-- //if mainchar_speed < 0 & movestick != 1 : mainchar_speed++ switch movecheck(es_posx(nowCE), es_posy(nowCE), (es_right(nowCE) + es_left(nowCE))/2, es_legg(nowCE) + 1 , stagewide, stagehigh, stagemap) case 0 es_grvi(nowCE)++ swbreak case 3 temp = mapcheck(nowchar_posy, 32) * 32 if es_posy(nowCE) + es_legg(nowCE) < temp - 1 or temp + 5 < es_posy(nowCE) + es_legg(nowCE) { es_grvi(nowCE)++ } swbreak case 4 temp = 0 es_grvi(nowCE) = -31 swbreak swend //////////////////////////////////右判定 switch movecheck(es_posx(nowCE), es_posy(nowCE), es_right(nowCE), (es_head(nowCE) + es_legg(nowCE))/2, stagewide, stagehigh, stagemap) case 1 case 4 repeat temp = movecheck(es_posx(nowCE), es_posy(nowCE), es_right(nowCE), (es_head(nowCE) + es_legg(nowCE))/2, stagewide, stagehigh, stagemap) if temp != 1 && temp != 4 : break es_posx(nowCE)-- loop swbreak swend //////////////////////////////////左判定 switch movecheck(es_posx(nowCE), es_posy(nowCE), es_left(nowCE), (es_head(nowCE) + es_legg(nowCE))/2, stagewide, stagehigh, stagemap) case 1 case 4 repeat temp = movecheck(es_posx(nowCE), es_posy(nowCE), es_left(nowCE), (es_head(nowCE) + es_legg(nowCE))/2, stagewide, stagehigh, stagemap) if temp != 1 && temp != 4 : break es_posx(nowCE)++ loop swbreak swend /////////////////////////////////////下判定 switch movecheck(es_posx(nowCE), es_posy(nowCE), (es_left(nowCE) + es_right(nowCE))/2, es_legg(nowCE)), stagewide, stagehigh, stagemap) case 1 case 4 es_grvi(nowCE) = 0 repeat temp = movecheck(es_posx(nowCE), es_posy(nowCE), (es_left(nowCE) + es_right(nowCE))/2, es_legg(nowCE)), stagewide, stagehigh, stagemap) if temp != 1 && temp != 4 : break es_posy(nowCE)-- loop swbreak case 3 temp = mapcheck(es_posy(nowCE), es_legg(nowCE)) * 32 if temp <= es_posy(nowCE) + es_legg(nowCE) & es_posy(nowCE) + es_legg(nowCE) <= temp + 6 & es_grvi(nowCE) >= 0 { mainchar_grv = 0 repeat if temp > es_posy(nowCE) + es_legg(nowCE) : break es_posy(nowCE)-- loop } swbreak swend //es_posx(nowCE) += mainchar_speed/4 es_posy(nowCE) += es_grvi(nowCE)/4 if es_grvi(nowCE) > 30 : es_grvi(nowCE) = 30 //if mainchar_speed > 12 & mainchar_speed < 20 : mainchar_speed = 12 //if mainchar_speed < -12 & mainchar_speed > -20 : mainchar_speed = -12 return


以上です。
これが解決しない事には何もできません。

誰か助けてください。



この記事に返信する


スペース

リンク

2016/9/18(Sun) 13:50:57|NO.76897

コンパイル+実行や実行ファイル自動作成でエディタが落ちますね。
コメントアウトして調べてみると301行目、switchが原因で落ちているようです。
試しにp1を適当な変数にしてみましたがやはり落ちます。
switchをDialogに変えると落ちない、後は先輩方に任せた(丸投げ)



しょうけい

リンク

2016/9/18(Sun) 13:53:56|NO.76898

追記すると

ラベルの*enemy_AI_base以降に関連するものを一通り追加したら
落ち始めたので多分原因はその近辺になるかもしれません



MillkeyStars

リンク

2016/9/18(Sun) 14:37:27|NO.76899

switch 引数コンパイラ解釈エラー


*enemy_AI_walk temp = movecheck(es_posx(nowCE), es_posy(nowCE), (es_right(nowCE) + es_left(nowCE))/2, es_legg(nowCE) + 1 , stagewide, stagehigh, stagemap) if temp = 1 or temp = 3 { } if movecheck(es_posx(nowCE), es_posy(nowCE), es_right(nowCE), (es_head(nowCE) + es_legg(nowCE))/2, stagewide, stagehigh, stagemap) != 1 { } if movecheck(es_posx(nowCE), es_posy(nowCE), es_left(nowCE), (es_right(nowCE) + es_left(nowCE))/2, stagewide, stagehigh, stagemap) != 1 { } //if mainchar_speed > 0 & movestick != 4 : mainchar_speed-- //if mainchar_speed < 0 & movestick != 1 : mainchar_speed++ switch movecheck(es_posx(nowCE), es_posy(nowCE), (es_right(nowCE) + es_left(nowCE))/2, es_legg(nowCE) + 1 , stagewide, stagehigh, stagemap) ←ここの部分

switch 命令でコンパイラが正しく()を認識できていません。その為内部でエラーが発生してしまっています。
対策は、switch 命令を行う直前行に p_val などの事前に変数置き換えで回避してください。

p_val = movecheck(es_posx(nowCE),es_posy(nowCE),(es_right(nowCE) + es_left(nowCE))/2,es_legg(nowCE)+1,stagewide,stagehigh,stagemap) switch p_val swend



しょうけい

リンク

2016/9/18(Sun) 14:40:01|NO.76900

()の数が多過ぎるみたいなところなんでしょうか

処理にも影響出そうな気がしてきました・・・



(--)

リンク

2016/9/18(Sun) 14:49:36|NO.76901

調べてみましたが、カッコは合っています。
問題は、switchの引数の文字数が長すぎるのです。
HSPのswitchは、元をたどれば#defineのマクロで定義されています。
それを見てみると、引数を一旦%s1でプリプロセッサ展開のスタックに積んでいますが、恐らく
そのスタックに積める文字数が限られているのだと思います。
それをオーバーしたため謎のエラーが発生したと思います。
なので、movecheck(〜)の結果をいったん適当な変数に入れて、
switchにその変数だけを指定するようにすればうまくいきます。



MillkeyStars

リンク

2016/9/18(Sun) 14:53:18|NO.76902

内部的には、

switch movecheck(es_posx(nowCE),es_posy(nowCE),(es_right(nowCE) + es_left(nowCE))/2,es_legg(nowCE)+1,stagewide,stagehigh,stage)
ここまではきちんと認識できてるんですけどね。

switch movecheck(es_posx(nowCE),es_posy(nowCE),(es_right(nowCE) + es_left(nowCE))/2,es_legg(nowCE)+1,stagewide,stagehigh,stagemap)
と入力すると、プリプロセッサの展開がうまくいかない。プリプロセッサがその文字数以降の文字を認識できていないとかなのかなー。



しょうけい

リンク

2016/9/18(Sun) 14:54:16|NO.76903

無事!!解決!!!しました!!!ありがとうございます!!!

switch便利だと思って乱用したんですけど
便利な分だけやはり 制限もあるんですね・・・

ありがとうございました!!



掘木

リンク

2016/9/18(Sun) 21:26:45|NO.76907

結構HSPには固定長の制約が多い…
C++なのだからstd::stringに置き換えてしまえばいいのにと思う今日この頃。

openHSPのほう確認してみました。
CToken::ReplaceLineBuf
CTagStack::PushTag
にて問題の一端を担いそうなコードが見られます。

ReplaceLineBufにてスタックに積むデータをプログラムコードから抽出します。
そのデータバッファがchar[128]という固定長で、コピー時にサイズ確認をしていないため、メモリバッファオーバーランを起こす可能性が。

そしてコピーされた文字列はCTagStack::PushTagにて送られます。
こちらでスタック内容を保持するバッファ領域に書き込むのですが、これが固定長(124byte)のために、
124文字目を\0に置き換えて実質123文字に切り落としてコピーされるので、元の文字列のまま展開される保証がありません。



…正直こちらでは対処療法的な解決はできても根絶できる気がしない。
(長すぎる文字列をスタックに積もうとした際にエラー停止する措置をしてもなぁ。)



Y_repeat

リンク

2016/9/19(Mon) 06:18:46|NO.76908

なるほどマクロ関係のバグはエラーメッセージわかりにくいですからねえ
意味不明なエラー情報→マクロのエラーであった。と

>…正直こちらでは対処療法的な解決はできても根絶できる気がしない。
>(長すぎる文字列をスタックに積もうとした際にエラー停止する措置をしてもなぁ。)
どっちみち正常に動く保障がないのでエラー停止しちゃって良さそうな気もします
「長すぎる文字列をスタックに積もうとしました」みたいな情報を出すかんじで

他にも 長すぎる変数名を使った時とか
(自分、モジュール名記述したらたまに制限越えるんですよねw)
長すぎるモジュール変数のインスタンスを指定した時とか
とにかく制限を越えたら教えて欲しかったりします



掘木

リンク

2016/9/19(Mon) 09:26:30|NO.76909

>>Y_repeatさん
まぁ結局こちらopenHSPの中をどうこうできる権限がなかったりする。今のところは。

>どっちみち正常に動く保障がないのでエラー停止しちゃって良さそうな気もします
>「長すぎる文字列をスタックに積もうとしました」みたいな情報を出すかんじで
それは言語仕様に関わるところなんで適当に措置してはいけない領域だと思う。
少なくともこちらが探した限りでは展開マクロの文字数制限に関する仕様は見ていないので、
制約を付けるべきものじゃないと推測します。
(エラーで仮停止するのなら、それ相応にTODOを書いておく必要があるし…)

>他にも 長すぎる変数名を使った時とか
>長すぎるモジュール変数のインスタンスを指定した時とか
>とにかく制限を越えたら教えて欲しかったりします
これに関しては仕様側にシンボル名称の長さの規定があるため、
警告一つ出ない仕様がまずい気がします。
…OBJNAME_MAXで比較してる部分がそうかな?なーんで何か所もあるんやろ。
固定長宣言に使われてるわけでもないし…うーん?



Y_repeat

リンク

2016/9/19(Mon) 19:59:54|NO.76910

>>堀木さん
>まぁ結局こちらopenHSPの中をどうこうできる権限がなかったりする。今のところは。
OpenHSPはwikiなので無事に改良が出来たら OpenHSPに投稿したらONITAMAさんに採用されるかもですね
OPEN SOURCEのコミッタになる流れってそやってたらコミッタになりませんか?と提案される
イメージがありますね

文字数越えるのは怖いですが
簡単な解析で長さを数えれる気がするので
コマンドラインコンパイラと併用すれば(バッチファイル書いて)
自動的にcheck出来るっぽいのでやってみようかな。と思いました

そんなことしなくても警告出してくれるならやっぱり嬉しいですが



inovia

リンク

2016/9/20(Tue) 06:05:44|NO.76911

とりあえず、バグトラッカーに登録しておくのはどうでしょう?
場所がわかりにくいので貼っておきます。
http://dev.onionsoft.net/mantis/login_page.php



Grape

リンク

2016/9/20(Tue) 23:17:49|NO.76918

話ずれるけどコンパイラの不具合でエディタが強制終了するのって欠陥エディタじゃないかと思います。
なんでエディタとコンパイルを別プロセスに分けてないんでしょう。



kanamaru

リンク

2016/9/20(Tue) 23:36:51|NO.76919

あれ?別プロセスだったような。
前にエディタ終了後もプロセス残っているとか問題になりませんでしたっけ?
その時に残ってたプロセスってエディタのプロセスじゃなくてコンパイラのプロセスだったような。



Grape

リンク

2016/9/21(Wed) 06:04:14|NO.76921

同じプロセスですよ。
>その時に残ってたプロセスってエディタのプロセスじゃなくてコンパイラのプロセスだったような。
残ってたのはコンパイラじゃなくてスクリプトを実行しているhsp3.exeのプロセスです。



掘木

リンク

2016/9/24(Sat) 01:54:12|NO.76982

>inoviaさん

うーん。バグトラックに登録したいのは山々なんですが、
使い方が分からなくて途方に暮れてる感じです。


誰もが見れるところに堂々と書けないようなバグもあるわけですし。



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