C++ cli 试图调用函数会导致找不到标识符错误
我想从按钮单击处理程序调用源代码中的函数,但得到了一个标识符not found错误。 在我的标题中,我有以下代码:C++ cli 试图调用函数会导致找不到标识符错误,c++-cli,C++ Cli,我想从按钮单击处理程序调用源代码中的函数,但得到了一个标识符not found错误。 在我的标题中,我有以下代码: private: System::Void onepone_Click(System::Object^ sender, System::EventArgs^ e) { AddOnePlusOne(); } 我的资料来源中有(除其他资料外): 如果我把这个函数放到标题中,它就可以正常工作。但我觉得从头运行所有代码很奇怪 我做错了什么?问题是因
private:
System::Void onepone_Click(System::Object^ sender, System::EventArgs^ e)
{
AddOnePlusOne();
}
我的资料来源中有(除其他资料外):
如果我把这个函数放到标题中,它就可以正常工作。但我觉得从头运行所有代码很奇怪
我做错了什么?问题是因为头文件
MyForm.h
中没有对函数void AddOnePlusOne()
进行修饰。因此,当在函数private:System::Void onepone\u单击(System::Object^sender,System::EventArgs^e)
中遇到它的调用时,编译器无法识别它。
在头文件
MyForm.h
中提供函数void AddOnePlusOne()
的声明,它可以正常工作。问题在于头文件MyForm.h
中没有函数void AddOnePlusOne()
的装饰。因此,当在函数private:System::Void onepone\u单击(System::Object^sender,System::EventArgs^e)
中遇到它的调用时,编译器无法识别它。
在header
MyForm.h
中提供函数声明void AddOnePlusOne()
,它将正常工作。谢谢!我添加了voidAddOnePlusOne()将cpp文件中的函数声明更改为void MMCuda04::MyForm::AddOnePlusOne()
(或者更确切地说是VS-did)。现在它工作得很好!非常感谢。我添加了voidAddOnePlusOne()将cpp文件中的函数声明更改为void MMCuda04::MyForm::AddOnePlusOne()
(或者更确切地说是VS-did)。现在它工作得很好!我同意你的看法。在旧的C/C++时代,头文件仅用于类型声明,而“真正的代码”位于.C或.cpp文件中。但是,在编写C++/CLI时,您需要习惯旧时代已经过去的事实。现在一切都发生在.h文件中。我同意你的看法。在旧的C/C++时代,头文件仅用于类型声明,而“真正的代码”位于.C或.cpp文件中。但是,在编写C++/CLI时,您需要习惯旧时代已经过去的事实。现在一切都发生在.h文件中。
#include "MyForm.h"
void AddOnePlusOne()
{
int one = 1;
int two = one + one;
MessageBox::Show("one plus one equals " + two.ToString());
}