Мне нужно вызвать метод c # на родном c ++. Я следовал этому руководству, скачал его, все заработало, но когда я пробую его на новой версии .net, я не могу воспроизвести.
Основная идея этого кода - вызов метода c # таким образом:
C # .dll -> C ++ / CLI (управляемый c ++) -> c ++
C #
public static class ManagedClass
{
public static bool Check()
{
return true;
}
}
Управляемый c ++
namespace ClassLibrary1 {
public ref class DoWork
{
public: bool CheckCSharp()
{
return CSharp::ManagedClass::Check();
}
};
}
__declspec(dllexport) bool Check()
{
ClassLibrary1::DoWork work;
return work.CheckCSharp();
}
C ++
#include "ClassLibrary1.h"
_declspec(dllexport) bool Check();
int main()
{
std::cout << Check();
system("pause");
return 0;
}
Это ошибка показа
Ошибка LNK2019: неразрешенный внешний символ "bool __cdecl Check (void)"
(? Check @@ YA_NXZ) ссылка на функцию _main
1 неразрешенная внешность