Мне удается вызвать C# dll из моего кода C ++, как показано ниже,
#include "stdafx.h"
#include <string>
#include <iostream>
#using "../Release/ClassLibrary1.dll"
using namespace ClassLibrary1;
using namespace System;
int main()
{
int sum, x, y;
x = 100000;
y = 22;
Class1 ^a = gcnew Class1();
sum = a->demoAdd(x, y);
sum = x + y;
printf("%d", sum);
}
int ttt(std::string &str1) {
}
И это C# Dll,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ClassLibrary1
{
public class Class1
{
public int demoAdd(int x, int y)
{
int sum;
sum = x + y;
return sum;
}
public bool RunTheMethod(Func<string, int> myMethodName)
{
//... do stuff
int i = myMethodName("My String");
//... do more stuff
return true;
}
}
}
Работает demoAdd
однако, как талисман, я не знаю, возможно ли вызвать RunTheMethod
, для которого требуется функция в качестве параметра со стороны C ++.
Я попытался, как показано ниже, без удачи,
int main()
{
int sum, x, y;
x = 100000;
y = 22;
Class1 ^a = gcnew Class1();
sum = a->demoAdd(x, y);
sum = x + y;
printf("%d", sum);
a->RunTheMethod(&ttt);
return 0;
}
int ttt(std::string &str1) {
}
Я новичок ie в c ++, возможно ли сделать этот вызов?
Любая помощь приветствуется!