//////////ASwHTTPMgr.cpp//////////// ... extern "C" { bool platformHTTPwifiNetworkAvailable(void* userData) { ASwHTTPMgr^ mgr = nullptr; Object ^obj = nullptr; GCHandle h = GCHandle::FromIntPtr(IntPtr(safe_cast<IntPtr>(userData))); try { obj = safe_cast<Object^>(h.Target); if(obj->GetType() == ASwHTTPMgr::typeid) { mgr = safe_cast<ASwHTTPMgr^>(obj); return mgr->wifiNetworkAvailable(); } } finally { h.Free(); } } ......... ASwHTTPMgr::ASwHTTPMgr() { ASwHTTPMgr^ reftype = this; void* opaqueObj = GCHandle::ToIntPtr(GCHandle::Alloc(reftype)).ToPointer(); _httpMgrCpp = new ASwHttpMgrCpp(opaqueObj); } ////////////////////////////////////// definition of _httpMgrCpp is static ASwHttpMgrCpp* _httpMgrCpp; ----------------------------------------------------------------------------------- //////////////ASwHttpMgrCpp.cpp////////////////// extern "C" { extern bool platformHTTPwifiNetworkAvailable(void* userData); } ASwHttpMgrCpp::ASwHttpMgrCpp(void* userData){ mUserData = userData; } bool ASwHttpMgrCpp::wifiNetworkAvailable() { return platformHTTPwifiNetworkAvailable(mUserData); } ///////////////////////////////////////////////////// mUserData is defined as protected: void* mUserData;
gcroot<>
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)