メソッドだけの 1 つのヘッダー ファイル、それらのメソッドが実装されている 2 つ目の C++ ファイル、2 つ目の C++ ファイルからメソッドを呼び出す 3 つ目のメイン ファイルがあります。
エラーが発生する行をコメントで示しました。
Root.hファイル (メソッドのみ):
class Root
{
//File
public: void NewFile(void);
public: void OpenFile(void);
public: void SaveFile(void);
public: void SaveAsFile(void);
public: void Print(void);
public: void Exit(void);
//Edit
public: void Undo(void);
public: void Redo(void);
public: void Cut(void);
public: void Copy(void);
public: void Paste(void);
public: void SelectAll(void);
//Tools
public: void Options(void);
//Help
public: void About(void);
};
ルート.cpp
#include "stdafx.h"
#include "Root.h"
using namespace System::Windows::Forms;
using namespace System::IO;
class Nroot : public Root
{
void OpenFile()
{
OpenFileDialog^ opf = gcnew OpenFileDialog();
opf->InitialDirectory = "C://";
opf->Filter = "Text Files|*.txt";
if(opf->ShowDialog() == DialogResult::OK) //here is first error C3063: operator '==': all operands must have the same enumeration type
{
StreamReader^ sr = gcnew StreamReader(opf->FileName);
MessageBox::Show(sr->ReadToEnd());
}
}
};
メインファイル(ジャストイベント)
private: System::Void openToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
Nroot nr;
nr.OpenFile; //here is second error C3867: 'WindowsFormsApplication2::Nroot::OpenFile': function call missing argument list; use '&WindowsFormsApplication2::Nroot::OpenFile' to create a pointer to member c:\users\srdjan\documents\visual studio 2012\projects\windowsformsapplication2\windowsformsapplication2\Form1.h 325
}