Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ cli 试图调用函数会导致找不到标识符错误_C++ Cli - Fatal编程技术网

C++ cli 试图调用函数会导致找不到标识符错误

C++ cli 试图调用函数会导致找不到标识符错误,c++-cli,C++ Cli,我想从按钮单击处理程序调用源代码中的函数,但得到了一个标识符not found错误。 在我的标题中,我有以下代码: private: System::Void onepone_Click(System::Object^ sender, System::EventArgs^ e) { AddOnePlusOne(); } 我的资料来源中有(除其他资料外): 如果我把这个函数放到标题中,它就可以正常工作。但我觉得从头运行所有代码很奇怪 我做错了什么?问题是因

我想从按钮单击处理程序调用源代码中的函数,但得到了一个标识符not found错误。 在我的标题中,我有以下代码:

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()
,它将正常工作。

谢谢!我添加了void
AddOnePlusOne()void MMCuda04::MyForm::AddOnePlusOne()
(或者更确切地说是VS-did)。现在它工作得很好!非常感谢。我添加了void
AddOnePlusOne()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());
}