void pointers
次のように、クラスに戻るいくつかのメソッドを公開する C DLL があります。
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()
か?