我在dll中只有包含函數指針(即vtable)的結構,我想在python中進行交互(用於測試目的)。我在使用ctypes的時候遇到了一些麻煩。在python中使用ctypes與僅包含函數指針的c結構進行交互
我所擁有的是:
struct ITest
{
virtual char const *__cdecl GetName() = 0;
virtual void __cdecl SetName(char const *name) = 0;
};
/* Factory function to create 'real' Test object */
extern "C" __declspec(dllexport) struct ITest * CALLCONV make_Test(char const * name);
「真正的」測試對象會在結構中適當填充。這被編譯成一個DLL(test.dll)。我希望在python中能夠調用工廠方法來取回指向我的Test結構體的指針,然後調用結構體中包含的函數指針,但我似乎無法理解它的方式將使用ctypes工作。有沒有人有任何類似的指針/例子,或者我應該使用類似SWIG還是Boost?
感謝您的任何幫助。