Я новичок в .net.
У меня есть управляемая библиотека C ++. Похоже на это.
// header file
namespace cppnetdll
{
public __gc class Class1
{
public:
static int foo_int(void);
};
}
// source file
namespace cppnetdll
{
int Class1::foo_int(void)
{
return 123;
}
}
Я могу вызвать это из управляемой программы на С ++. Когда я пытаюсь позвонить с
C # программа, я получаю сообщение об ошибке компилятора: «Тип или имя пространства имен
«Class1» не может быть найден (отсутствует директива using или
ссылка на сборку?) "Ошибка относится к строке DllImport ниже.
Вот код C #
[Код: 1: a72c1df571]
пространство имен csuser
{
публичный класс ххх
{
[DllImport ("cppnetdll.dll")] extern
int Class1.foo_int ();
private void yyy() { int i =
foo_int(); }
}
}[/code:1:a72c1df571]
Я пробовал разные подходы, но безуспешно. Что такое магия
синтаксис?
Забавно, что я могу честно вызывать неуправляемые функции C ++ из C #
легко объявив функции как "C" и экспортировав из DLL.
Я ожидал, что вызов управляемого кода будет проще. Может быть, это так просто
что никто не думал документировать это!