主にコンソールで動作するプログラムを書いていますが、たまにフォームを使用する必要があります。
Windows フォームを作成し、出力をコンソールに切り替えました。その後、もう 1 つのフォーム (Form2) をプロジェクトに追加し、次のようなコードを作成しました。
#include "stdafx.h"
#include <iostream> // For std::cout and such
#include "Form1.h"
#include "Form2.h"
using namespace testing_forms;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
/* Instructions Block 1 */
Application::Run(gcnew Form1());
/* Instructions Block 2 */
Application::Run(gcnew Form2());
/* Instructions Block 3 */
return 0;
}
したがって、基本的に、プログラムは最初の命令ブロックを実行し、次にフォームを呼び出し、次に 2 番目の命令ブロックを実行します。
ただし、これではフォームとコンソールの間でデータを共有できません。これは 1 つのプログラムにすぎないため、ユーザー名や整数など、本当に必要なデータです。
私が考えることができる唯一の方法は、テキストファイルを保持し、コンソールとフォームから読み書きして情報を共有することです(私はこれをテストしていません)が、正直なところ、私はあまり好きではありませんこのソリューション。
では、(できれば) 変数のみを使用して、Windows フォームとコンソールの間でデータを共有するにはどうすればよいでしょうか?