我有一个 C DLL,它公开了一些返回void pointers
类的方法,如下所示:
void *GetLicense() {
static AppLicenseImpl ipds_;
return (void *) &ipds_;
}
在 C++ 中,加载 DLL 后,我会这样做:
typedef void *(* FPGetLicense)();
GetLicense_ = (FPGetLicense)GetAddress("GetLicense");
license_ = (AppLicense *) GetLicense_();
license_->GetApplicationStatus(); // Load data so that other calls don't fail
我不知道如何在 Python 中进行并行处理。这让我得到了指针:
d = ctypes.cdll.LoadLibrary('license.dll')
d.GetLicense.restype = ctypes.c_void_p
p = d.GetLicense() # returns ptr loc, something like 8791433660848L
但我显然不能p.GetApplicationStatus()
用 Python 调用。有没有人建议我如何在 Python 中以其他方式实例化该类以便我可以调用GetApplicationStatus()
?