Visual C++ 2008 ProfessionalでC++/CLIを使用しています。私は静的関数LoginAccountsを呼び出そうとしていますが、おそらくManaged CodeとManagedを混在させているためにエラーが発生しますが、何をすべきか分かりません。私はWindows用のC++/CLIでエラーが発生しました.Pthreadを使用してデリゲートインスタンスを作成しないと機能のアドレスを取得できません。
System::Void testing_Click(System::Object^ sender, System::EventArgs^ e) {
pthread_create(&t, NULL, &Contas::LoginAccounts, this); //Error in this line
}
エラー13エラーC3374をpthreadのを使用しています: 'テスター::テスト:: LoginAccounts' のアドレスを取るデリゲートのインスタンスを作成しない限り、することはできません私は何をすべきか
これを解決するには? これはおそらく単純な解決策ですが、わかりません。 ありがとうございます。
void LoginAccounts(){
this->btn_next->Enabled = false;
this->login_accounts->Enabled = false; //Unhandled exception here
if(this->clb_contas->CheckedItems->Count <= 0){ //Unhandled exception here
}
}
System::Void testing_Click(System::Object^ sender, System::EventArgs^ e) {
ThreadStart^ start = gcnew ThreadStart(this, &Login::LoginAccounts);
Thread^ t = gcnew Thread(start);
t->Start();
}
"見て、あなたは委任オブジェクトを自分自身で維持しなければなりません。"これは 'gcroot'テンプレートを使ってC++/CLIで実現できます。 –
私はあなたが私のマネージドスレッドを提案したように入れましたが、 "this->"を使ってエラーが出ました。私はスレッドで呼び出された関数の内部でこれを使ってエラーを表示するように質問を編集しました。 – Grego
@AlexandreC。多分これが私がスレッドで呼び出される関数の中でthis->を使ってエラーになる理由だと思いますか?はいの場合、どうすればこの問題を解決できますか? – Grego