Im используя ++ DLL C для моего проекта C# DLL имеет класс, внутри которого создается и уничтожается внешними функциями, такими как:оператор «Новый» работает в экстерном «C»
class myClass
{
int N;
public:
//some elements and some functions
myClass(int n)
{
N=n;
}
};
__declspec(dllexport) myClass * builderF(int n)
{
return new myClass(n);
}
__declspec(dllexport) void destroyerF(myClass * c)
{
delete c;
}
и они находятся в extern "C" {} body.
Как компилятор позволяет мне использовать функции C++ - это «C» пространство? Разве это не только для кода C? Это проверено и работает (Ive начал создавать opencl-обертку для C#). Раньше я использовал только чистые коды C.
Может быть полезно: [В источнике C++, каков эффект extern «C»?] (Http://stackoverflow.com/questions/1041866/in-c-source-what-is-the-effect- of-extern-c) –
Таким образом, связь полностью отличается от компиляции? Поэтому он просто компилируется как код на C++. –
Это не только компилируется, но действительно работает? Я имею в виду функцию 'destroyerF'? o.O – lapk