C++函数作为参数

本文关键字:参数 函数 C++ | 更新日期: 2023-09-27 18:27:14

我有一个包含C++代码的DLL,它在Visual C#中运行得很好。当我在C++DLL中创建一个fucton时,它会显示在Visual C#中,我会调用它,甚至使用参数。但是,当我在C++DLL中添加函数指针作为参数之一时,Visual C#找不到它。

C++函数:

 int TEST(int *func) // Works fine and shows up in visual C#.
 { 
     return 0;
 } 
int TEST2(int (*func)()) // Works, however doesn't show up in Visual C#
{
     return 0;
}

更新:

当我从C#调用TEST2时,我得到错误:'TEST2' is not supported by the language

C++函数作为参数

函数指针参数应该这样声明:

int TEST2(int (*func)()) { /*...*/ }

我很确定您需要在*func周围加括号来告诉编译器*func是指向函数int (*func)()的指针,而不是您所拥有的int *(*func)()