Visual C++ 2005 Express Editionを使用している初心者です。
タイトルの方法がどうしてもわからないので教えてください。
うまく説明できないので聞きたいところのコードを載せます。
//SAMPLE.cpp
#include "stdafx.h"
#include "Form1.h"
using namespace SAMPLE;
int main(array<System::String ^> ^args)
{
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Application::Run(gcnew Form1());
}
//Form1.h
#include <process.h>
#include <vcclr.h>
namespace SAMPLE {
unsigned __stdcall counter(void *arg);
intthread_id1;
unsigneddummy;
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
public ref class Form1 : public System::Windows::Forms::Form
{
public:Form1(void)
{
InitializeComponent();
//別スレッド起動
thread_id1=_beginthreadex(NULL,0,counter,(void *)1,0,&dummy);
}
private: System::Windows::Forms::TextBox^ textBox1;
private: System::ComponentModel::Container ^components;
void InitializeComponent(void)
{
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
//省略(コンポーネント初期化)
}
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
}
};
unsigned __stdcall counter(void *arg){//別スレッド
//ここで文字列を記述して上のtextBox1に表示したい
return 0;
}
}
初歩的なことかもしれませんが、
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
フォームやコントロールを作成したスレッド以外のスレッドがフォームや
コントロールを直接操作することはできません。
フォーム・コントロールが持つ Invoke メソッドなどを介して行います。
スレッド作成に _beginthreadex を使用しているようですが、
この関数はWindows APIが提供するスレッドハンドルを返すので、
明示的に CloseHandle でハンドルを閉じなければなりません。
System::Threading::Thread クラスを使ってはどうでしょう。
System::Threading::Threadを使って別スレッドをForm1クラスの中に入れ、実現することができました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- 英語 下記の英文の日本語訳をお願いします。 1 2023/03/02 10:01
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- 英語 下記の英文を日本語に訳して、その意味を教えてください。 1 2023/03/09 14:13
- 英語 『G19 Gen5 MOS - Modular Optic System for Gen5』 の 『 1 2023/03/05 13:37
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
int main()、void main()、void...
-
【gcc・cygwin】multiple defin...
-
Notepad++の関数リスト表示の変...
-
静的でないメンバ関数の呼び出...
-
多重定義が起きている?--lnk20...
-
C# Controls.Addで動的に配置し...
-
ArduinoでMouse関数を使用して...
-
【VC++6.0】イベントハンドラ関...
-
C++にてtemplateで受け取った任...
-
ウインドウの移動禁止
-
_beginthreadにて発生するコン...
-
VC++でGetKeyboardStateがうま...
-
メッセージマップ(ON_CONTROL_...
-
void main()って誰が最初?:AN...
-
critical error c0000005
-
コールバックって・・・
-
gcc: incompatible pointer type
-
const_castのつかいどころを教...
-
SC_SIZEがわからない
-
既定のコンストラクタがありま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Notepad++の関数リスト表示の変...
-
ArduinoでMouse関数を使用して...
-
【gcc・cygwin】multiple defin...
-
戻り値を返す関数の前に(void)...
-
多重定義が起きている?--lnk20...
-
C++にてtemplateで受け取った任...
-
既定のコンストラクタがありま...
-
静的でないメンバ関数の呼び出...
-
gcc: incompatible pointer type
-
C# Controls.Addで動的に配置し...
-
int main()、void main()、void...
-
(void)0 はどんな意味ですか
-
VC++でGetKeyboardStateがうま...
-
void*型の配列について
-
C# KeyDownイベントでショート...
-
const_castのつかいどころを教...
-
H8マイコンのシリアル通信につ...
-
コールバックって・・・
-
関数ポインタについて
-
void main()って誰が最初?:AN...
おすすめ情報