Я все еще сталкиваюсь со многими аспектами C ++, но, надеюсь, следующее имеет какой-то смысл.
Есть некоторые аспекты C ++, которые, я не думаю, будут хорошо переведены через чистоМеханизм импорта на основе DLL.Например, я не думаю, что вы сможете поддерживать полиморфизм или перегрузку методов.
Однако это не означает, что вы не можете использовать классы.Я думаю, что самый простой способ показать, как это может работать, - это игрушечный пример.
//Start with a class definition
class foo
{
int bar = 0;
int getBar();
};
// Now create a C API that you can access from Delphi
extern "C" {
void *createFoo()
{
return new foo();
}
int getBar(void *fooInstance)
{
foo *fooObj = (foo*)fooInstance;
return fooObj->getBar();
}
} // end of extern "C"
Затем экспортируйте функции extern "C"
в delphi и используйте их.
У меня нетКомпилятор удобен для проверки этого, и могут быть ошибки, однако, надеюсь, их будет достаточно, чтобы передать концепцию.Если есть какие-либо грубые ошибки, пожалуйста, дайте мне знать, и я исправлю это.