Когда я вызываю функцию C ++:
Это не код C ++, вы написали класс C ++ / CLI.Обратите внимание на ключевое слово ref class .Вы объявили метод для получения указателя на C-функцию.Это хорошо в языке C ++ / CLI, позволяет смешивать нативные и управляемые конструкции кода, но не отлично подходит для языков, подобных C # или VB.NET.Они настаивают на том, чтобы вы использовали управляемую версию указателя функции, делегат .
. В платформе .NET уже есть тип делегата, который соответствует сигнатуре указателя на вашу функцию C, MethodInvoker.Но давайте предположим, что вы хотите расширить сигнатуру и добавить, скажем, свои собственные аргументы и тип возвращаемого значения:
public ref class TEST_CLASS
{
public:
delegate void TEST_delegate();
void TEST(TEST_delegate^ func)
{
func();
}
};
Выбор этого имени немного обидный.