2017-06-28 7 views
1

ボタンクリックハンドラからソース内の関数を呼び出したいのですが、識別子が見つかりませんでした。私のヘッダーに 私はこのコードを持っている:私は、ヘッダーに入れている場合、この機能は正常に動作します関数を呼び出そうとすると、識別子が見つかりませんでしたエラーが発生しました

#include "MyForm.h" 

void AddOnePlusOne() 
{ 
    int one = 1; 
    int two = one + one; 
    MessageBox::Show("one plus one equals " + two.ToString()); 
} 

private: 
    System::Void onepone_Click(System::Object^ sender, System::EventArgs^ e) 
    { 
     AddOnePlusOne(); 
    } 

を(他のものの間で)私は自分のソースを持っています。しかし、ヘッダーからすべてのコードを実行するのは私にとっては奇妙なことです。

私は間違っていますか?

+0

私はあなたに同意します。古いC/C++では、ヘッダーファイルは型宣言のためのものでしたが、 "実コード"は.cまたは.cppファイルにありました。しかし、C++/CLIをプログラミングするときは、古い時代が終わったという事実に慣れる必要があります。今はすべてが.hファイルで起こります。 – SBS

答えて

0

ヘッダファイルMyForm.hには、void AddOnePlusOne()の装飾が使用できないため、問題があります。関数private: System::Void onepone_Click(System::Object^ sender, System::EventArgs^ e)で呼び出しが発生すると、コンパイラはそれを識別できません。 MyForm.hのヘッダに関数void AddOnePlusOne()の宣言を入力しても問題ありません。

+0

ありがとう!ヘッダにvoid 'AddOnePlusOne();を追加し、cpp-fileの関数宣言を' void MMCuda04 :: MyForm :: AddOnePlusOne() 'に変更しました。今それは素晴らしい作品です! – Flisp

関連する問題