net framework 4.5 C++でフォーム(WinForm)アプリケーションを書く
Visual Studio 2013 をインストールし、使い慣れた .net c++ で WinForm アプリケーションを書こうと思ったのですが、プロジェクトを作成する際に Visual C++ - "CLR" オプションで、Windows Forms アプリケーションがないことに気がつきました。そこで、自分で設定しようとしたところ
まず、空の Visual C+ CLR プロジェクトを Test という名前で作成します。
1. 作成後、プロジェクトのプロパティタブ、"一般プロパティ" - "References" - "Add New Reference " - "Assemblies" を開き、System と System を選択します。
このステップの効果は、プログラムが WinForm Forms クラスファミリーを参照できることです。
2. プログラムで最初に表示されるフォームとして、Visual C++->UI->Windows Formsの新しい項目、MainFormと名付けましょうを追加します。
main.cppを追加します(個人的な習慣として、プログラムのエントリーポイントをmain.cppに置くようにしています。)
#include "MainForm.h"
int main()
{
System::Windows::Forms::Application::Run(gcnew Test::MainForm());
return 0;
}
4. 生成、実行。MainFormのフォームが表示されるのがわかるはずです。しかし、まだ欠点があります。MSDOSのようなコンソールウィンドウが表示されるのですが、このウィンドウを表示させないようにするにはどうしたらよいでしょうか?
また、プロジェクトのプロパティを設定する必要があります。プロジェクトのプロパティ]タブを開き、[プロパティの設定]をクリックします。
次に、生成して、リンクエラー、"Unresvable external symbol _WinMain@16"を見つけてください。
では、main.cppのint mainをint WinMainに変更します。
#include "MainForm.h"
int WinMain()
{
System::Windows::Forms::Application::Run(gcnew Test::MainForm());
return 0;
}
実行します。今度はMSDOSのようなコンソールウィンドウは表示されないはずです。
5. MainForm フォームを閉じ、プログラムを終了します。プログラムが異常終了することがわかります。
"マネージドデバッグアシスタント "FatalExecutionEngineError" ............................(以下略)....。追加情報です。実行中にエラーが発生しました。このエラーのアドレスは0x690d4191で、スレッドは0x5f4です。このエラーは、CLRのバグ、またはユーザーコードの安全でない、または検証できない部分のバグである可能性があります。このバグの一般的な原因は、COM-interopまたはPInvokeブロックの処理におけるユーザーエラーで、スタックを破損させる可能性があります。
まだ何か設定ミスがあるようです
まだプロジェクトのプロパティを設定しています。プロジェクトのプロパティ]タブを開きます。 "プロパティの構成" - "リンカー" - "詳細設定" - "entry point" を "main" に変更します。
次に、WinMainをmainに変更するためにmain.cppのコードを修正します。
#include "MainForm.h"
int main()
{
System::Windows::Forms::Application::Run(gcnew Test::MainForm());
return 0;
}
ランを生成して、今度はうまくいくはずです。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例