No.4ベストアンサー
- 回答日時:
>自作プログラムのコードを検索すれば、WinMainがあるのですか?
メニューの「プロジェクト(P)」に「ソース表示(V)」というのがありませんか?
蛇足ですが#3への補足です。
>2の方法ですと、グローバル変数があった場合にそのコンストラクタや
>ディストラクタが実行されないので危険だと思うのですが、いかがです
>か?
静的グローバル変数は初期化されないので危険をはらみますが、静的グローバル変数には初期化コードがあるだけでコンストラクタやディストラクタは存在しません(回答のコードを例にすればReboot変数が静的グローバル変数です)
動的グローバル変数は、メインフォームのクラス内に記述すれば、メインのフォームをReleaseした時点でディストラクタが呼ばれ、CreateForm()でフォームを再作成した時点でコンストラクタが呼ばれる筈です。
もし、独自のクラス内に動的グローバル変数を置いてあっても、そのクラスを生成、破棄する時点で、コンストラクタとディストラクタが呼ばれる筈です。
No.3
- 回答日時:
No.1のhsn_hidekiです。
chie65536さんへ質問です。
2の方法ですと、グローバル変数があった場合にそのコンストラクタやディストラクタが実行されないので危険だと思うのですが、いかがですか?
1の方法は確実に再起動されるので大丈夫ですよね。
No.2
- 回答日時:
1.
ShellExecuteEx関数で自分自身(Application->ExeName()が返す実行ファイル名)を起動し、呼び出し元プログラムを終了する。
2.
WinMainの中を改造する。
bool Reboot;
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
Reboot = true;
try
{
while (Reboot)
{
Reboot = false;
Application->Initialize();
Application->CreateForm(__classid(TMainForm), &MainForm);
Application->Run();
MainForm->Release();
}
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
再起動したい場合、Reboot変数にtrueを設定した上でメインのフォームをクローズすると、もう一度メインのフォームが作成され、プログラムが再起動したように振るまいます。
なにもせずにメインのフォームをクローズすると普通に終了します。
この回答への補足
コードまで書いていただきありがとうございます。
ただ、「WinMainの中を改造する」というのが、わかりません。
自作プログラムのコードを検索すれば、WinMainがあるのですか?
それともイベントのこと?
初心者なので、的外れかもしれませんが、
もう少しお願いします!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン 「自動修復でPCを修復できませんでした」と表示されPCが起動しないのですが対処法はありますか? 5 2022/05/13 09:16
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- C言語・C++・C# 参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++ 3 2022/12/22 01:49
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- Windows 10 windows11 update の「更新の再開」について初歩的な質問なのですが 1 2022/10/19 00:57
- C言語・C++・C# C言語で移動平均のプログラムを作りたいのですが、数値をファイルから取ってきて計算をするプログラムはど 1 2022/09/29 01:21
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、写真のプログラムをどう直せ 2 2022/07/09 21:13
- その他(プログラミング・Web制作) Windows上のプログラム。「予め決められた時刻に自分で起動して処理して自分で終了する」って可能? 3 2023/01/04 14:29
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
MACで動く実行ファイルをWindow...
-
プログラムの再起動
-
【C言語】if文内の演算子の優先...
-
プログラミング ソースコード
-
C言語で途中までしか、プログラ...
-
なんかC言語でプログラム書いて...
-
タスクバーのインジケータを作...
-
C# 変数の動的な再定義
-
Borland C++Builder6で、デバッ...
-
ヘッダファイル? malloc.hと...
-
sendkeysにてALT+CTRL+INSERTを...
-
C言語でフォルダを開く
-
一定時間たつと、リセットしたい
-
C言語 fork()について
-
FORTRANについて
-
アクセス[ファイルを開かずに、...
-
他の実行ファイルを実行するプ...
-
SNMPマネージャAPIでメモリリー...
-
”行数のカウント”はどうすれば...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
なんかC言語でプログラム書いて...
-
プログラミング ソースコード
-
MACで動く実行ファイルをWindow...
-
実行時エラー429
-
Windows10でDOSゲーム
-
VB上で実行中の無限ループの止め方
-
他のPC上にあるexeを、そのP...
-
sendkeysにてALT+CTRL+INSERTを...
-
VBAで外部プログラムを非表示で...
-
システム資源とは?
-
プロセス間通信について
-
アクセス[ファイルを開かずに、...
-
C言語でプログラムを再起動
-
C言語で途中までしか、プログラ...
-
system関数を使用してsuコマン...
-
終了してもプログラムが実行し...
-
PIC のデータEEPROMに書き込み...
-
実行中の実行ファイルの上書き
-
他の実行ファイルを実行するプ...
おすすめ情報