いちいち実行中の○○○.exeファイルを停止させるのが面倒なのですが

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
らっせる
記事: 12
登録日時: 4年前

いちいち実行中の○○○.exeファイルを停止させるのが面倒なのですが

#1

投稿記事 by らっせる » 4年前

一日に何度もすいません。今日練習でいくつもプログラムを書いていて思ったのですが
作ったプログラムの一部を変えて実行すると
「○○○.exeを開いて書き込むことができません」
のメッセージが。。。
毎回タスクバーを起動して停止させるのが面倒なのですが何か良い方法ないでしょうか?

hide

Re: いちいち実行中の○○○.exeファイルを停止させるのが面倒なのですが

#2

投稿記事 by hide » 4年前

プログラムが正常に停止するように修正しましょう。

アバター
らっせる
記事: 12
登録日時: 4年前

Re: いちいち実行中の○○○.exeファイルを停止させるのが面倒なのですが

#3

投稿記事 by らっせる » 4年前

コード:

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
        ChangeWindowMode( TRUE ); // ウィンドウモードに設定
        DxLib_Init(); // DXライブラリ初期化処理

        int x = 50;
        int Handle; // 画像格納用ハンドル
        Handle = LoadGraph( "画像/キャラクタ01.png" ); // 画像のロード

        while( 1 ){
                if( ProcessMessage() != 0 ){ // メッセージ処理
                        break;//ウィンドウの×ボタンが押されたらループを抜ける
                }
                DrawGraph( x, 100, Handle, TRUE ); //画像の描画
                x = x + 2; // xを2増やす
                Sleep(7); // 7[ms]待機
        }
        
        DxLib_End(); // DXライブラリ終了処理
        return 0;
}
とりあえずDxLib_End()は入っているのですが、それ以外に停止させる関数があるのでしょうか?(プログラミング歴が浅くて申し訳ないです)

8127

Re: いちいち実行中の○○○.exeファイルを停止させるのが面倒なのですが

#4

投稿記事 by 8127 » 4年前

こんばんは。
DXライブラリではフレーム制御はProcessMessage()でやってくれるので
Sleep(7)は必要ないと思いますよ。
これでプログラムが正常に停止するかは分かりませんが…

アバター
らっせる
記事: 12
登録日時: 4年前

Re: いちいち実行中の○○○.exeファイルを停止させるのが面倒なのですが

#5

投稿記事 by らっせる » 4年前

こんばんはです。
今もう一回VSを立ち上げてやってみたところうまくいきました。
ただ、プログラムを正常に停止させるようにプログラムを書いていないのですがどうしてうまくいったのでしょうか??
うまくいく時とそうでない時があって困ってます(泣)

8127

Re: いちいち実行中の○○○.exeファイルを停止させるのが面倒なのですが

#6

投稿記事 by 8127 » 4年前

ウィンドウの×ボタンでループを抜け、DxLib_End();return 0;が実行されるならプログラムは正常終了します。
(他に正常終了するための関数がある、ということではありません)

プロセスが残ってしまうのは、DxLib_End();が呼ばれずに終了したからです。
VC++等の機能で強制終了している、またはabort()を呼んだ、などが考えられると思います。

アバター
Dixq (管理人)
管理人
記事: 1661
登録日時: 10年前
住所: 北海道札幌市
連絡を取る:

Re: いちいち実行中の○○○.exeファイルを停止させるのが面倒なのですが

#7

投稿記事 by Dixq (管理人) » 4年前

> DXライブラリではフレーム制御はProcessMessage()でやってくれるので
Sleep(7)は必要ないと思いますよ。

いや、この場合必要あると思いますよ。
必要ないのは裏画面処理設定にしていてScreenFlip()を呼んだときです。
まぁ、普通裏画面処理をせずにゲームを作ることはないわけですが、、。

アバター
らっせる
記事: 12
登録日時: 4年前

Re: いちいち実行中の○○○.exeファイルを停止させるのが面倒なのですが

#8

投稿記事 by らっせる » 4年前

> プロセスが残ってしまうのは、DxLib_End();が呼ばれずに終了したからです。
VC++等の機能で強制終了している、またはabort()を呼んだ、などが考えられると思います。

なるほど。途中で強制終了しているということなんですね。

コード:

if(DxLib_Init() != 0){
     return 0
}
こんな感じの要領でエラーがないか確認してみます。

Dixq(管理人)さん 裏画面処理というのをついさっき勉強しましたf(^_^)

アバター
Dixq (管理人)
管理人
記事: 1661
登録日時: 10年前
住所: 北海道札幌市
連絡を取る:

Re: いちいち実行中の○○○.exeファイルを停止させるのが面倒なのですが

#9

投稿記事 by Dixq (管理人) » 4年前

書いてはいけない4つの処理というものがありますので、紹介します。

http://dixq.net/g/h_11.html

アバター
らっせる
記事: 12
登録日時: 4年前

Re: いちいち実行中の○○○.exeファイルを停止させるのが面倒なのですが

#10

投稿記事 by らっせる » 4年前

8127さん、管理人さん解答ありがとうございます。
自分はC言語をよく知らないのでもう少し勉強してみます。

閉鎖

“C言語何でも質問掲示板” へ戻る