QString PathUtils::find(const QString &exe) { QString binary; if (QFile::exists(binary = PathUtils::combine(Preferences::get()->binariesPath(), exe))) { return binary; } QString relative; if (QFile::exists(relative = PathUtils::combine(QCoreApplication::applicationDirPath(), PathUtils::combine(FOLDER_BINARIES, exe)))) { return relative; } if (QFile::exists(exe)) { return exe; } QString bin; if (QFile::exists(bin = QStandardPaths::findExecutable(exe))) { return bin; } QDir tmp; #ifdef Q_OS_WIN // WCHAR b[MAX_PATH]; // GetSystemDirectory(b, MAX_PATH); // QString sys = QString::fromWCharArray(b); // if (!sys.isEmpty() && (tmp = QDir(sys)).exists()) // { // if (QFile::exists(bin = tmp.absoluteFilePath(exec))) // { // return bin; // } // } #endif QString jdk(qgetenv("JAVA_HOME")); if (!jdk.isEmpty() && (tmp = QDir(PathUtils::combine(jdk, "bin"))).exists()) { if (QFile::exists(bin = tmp.absoluteFilePath(exe))) { return bin; } } QString sdk(qgetenv("ANDROID_SDK_HOME")); if (!sdk.isEmpty() && (tmp = QDir(PathUtils::combine(sdk, "platform-tools"))).exists()) { if (QFile::exists(bin = tmp.absoluteFilePath(exe))) { return bin; } } return exe; }
int main() { jobject array[14]; jobject map; /* Creates a map backed by the given array */ map.array= array; /* a flat array with depth filled in by self-references; for example, the first element of the array contains a pointer to the arrray itself */ array[JavaSDKClasses::JAVA_LANG_CLASS].array = array; array[JavaSDKClasses::JAVA_REFLECT_FIELD].array = array; array[JavaSDKClasses::COM_SRCH2_REFINING].methodID = 124; array[JavaSDKClasses::COM_SRCH2_SEARCHABLE].methodID = 3; array[JavaSDKClasses::COM_SRCH2_ATTRIBUTE].methodID = 4; array[JavaSDKClasses::COM_SRCH2_PRIMARY_KEY].methodID = 5; array[JavaSDKClasses::COM_SRCH2_REFININGFLOAT].methodID = 6; array[JavaSDKClasses::COM_SRCH2_REFININGUNSIGNED].methodID = 7; array[JavaSDKClasses::COM_SRCH2_REFININGDATE].methodID = 9; array[JavaSDKClasses::COM_SRCH2_REFININGINTERVAL].methodID = 10; array[JavaSDKClasses::COM_SRCH2_REFININGSTRING].methodID = 11; array[JavaSDKClasses::COM_SRCH2_INDEXABLESTRING].methodID = 12; array[JavaSDKClasses::COM_SRCH2_ATTRIBUTE_EXECEPTION].methodID = 13; array[JavaSDKClasses::COM_SRCH2_PARAMETER_MAPPING].array= array; JNIEnv e= JNIEnv(); /* Creates a wrapping this map */ JavaSDKClasses sdk(e, map , 0, 0); /* Checks that the map looks up directly correctly */ assert(sdk.refiningClassPtr == 124); /* Checks that the map looks up depth, nested maps, correctly */ assert(sdk.javaClassRef.ptr == map.cls); /* Checks second level look up: look ups on nested map */ assert(sdk.javaClassRef.getFields == 124); /* Checks last map element edge case */ assert(sdk.parameterMappingClassRef.ptr == map.cls); return 0; }
int main() { map<string,string> params; //参数的含义请参考 http://wiki.open.qq.com/wiki/%E5%9B%9E%E8%B0%83%E5%8F%91%E8%B4%A7URL%E7%9A%84%E5%8D%8F%E8%AE%AE%E8%AF%B4%E6%98%8E_V3 params["amt"]="80"; params["appid"]="33758"; params["billno"]="-APPDJT18700-20120210-1428215572"; params["openid"]="test001" ; params["payamt_coins"]="20"; params["payitem"]="323003*8*1"; params["ts"]="1328855301"; params["providetype"]="0"; params["pubacct_payamt_coins"]="10"; params["token"]="53227955F80B805B50FFB511E5AD51E025360"; params["version"]="v3"; params["zoneid"]="1"; string appkey="12345f9a47df4d1eaeb3bad9a7e54321"; unsigned int appid=33758; COpenApiV3 sdk(appid, appkey); sdk.init(); string url_path = "/cgi-bin/temp.py"; string sig ="VvKwcaMqUNpKhx0XfCvOqPRiAnU="; bool iRet=sdk.verifySig(OPEN_API_V3_METHOD_GET,url_path,params,sig); if(iRet) { printf("sig=%s is valid\n",sig.c_str()); } else { printf("sig=%s is invalid\n",sig.c_str()); } return 0; }
void Ide::ExecuteApk() { AndroidSDK sdk(GetAndroidSdkPath(), true); if(!sdk.Validate()) return; SelectAndroidDeviceDlg select(&sdk); if(select.GetDeviceCount() != 1 && select.Run() != IDOK) return; if(!select.GetDeviceCount()) return; One<Host> host = CreateHost(false); Apk apk(target, sdk); String packageName = apk.FindPackageName(); String activityName = apk.FindLaunchableActivity(); Adb adb = sdk.MakeAdb(); adb.SetSerial(select.GetSelectedSerial()); host->Execute(adb.MakeInstallCmd(target)); if(!packageName.IsEmpty() && !activityName.IsEmpty()) host->Execute(adb.MakeLaunchOnDeviceCmd(packageName, activityName)); }
int xcrun(int argc, char **argv, Target &target) { if (getenv("xcrun_log")) showCommand = true; constexpr const char *ENVVARS[] = { "DEVELOPER_DIR", "TOOLCHAINS", "xcrun_verbose" }; for (const char *evar : ENVVARS) { if (getenv(evar)) { warn << "xcrun: ignoring environment variable " << "'" << evar << "'" << warn.endl(); } } if (char *SDK = getenv("SDKROOT")) { unsetenv("OSXCROSS_SDKROOT"); char *argv[1] = { SDK }; sdk(target, argv); } auto dummy = [](Target&, char**) { return 0; }; ArgParser<int (*)(Target&, char**), 19> argParser = {{ {"h", help}, {"help", help}, {"version", version}, {"v", dummy}, {"verbose", dummy}, {"k", dummy}, {"kill-cache", dummy}, {"n", dummy}, {"no-cache", dummy}, {"sdk", sdk, 1}, {"toolchain", dummy, 1}, {"l", log }, {"log", log}, {"f", find, 1}, {"find", find, 1}, {"r", run, 1}, {"run", run, 1}, {"show-sdk-path", showSDKPath}, {"show-sdk-version", showSDKVersion} }}; int retVal = 1; for (int i = 1; i < argc; ++i) { auto b = argParser.parseArg(argc, argv, i); if (!b) { if (argv[i][0] == '-') { err << "xcrun: unknown argument: '" << argv[i] << "'" << err.endl(); retVal = 2; break; } run(target, &argv[i]); } retVal = b->fun(target, &argv[i + 1]); if (retVal != 0) break; i += b->numArgs; } return retVal; }
dp::sg::ui::ViewStateSharedPtr loadScene( const std::string & filename, dp::util::FileFinder const& fileFinder, dp::util::PlugInCallbackSharedPtr const& callback ) { dp::sg::ui::ViewStateSharedPtr viewState; // appropriate search paths for the // loader dll and the sample file. string dir; dp::util::FileFinder localFF( fileFinder ); localFF.addSearchPath( dp::util::getCurrentPath() ); localFF.addSearchPath( dp::util::getModulePath() ); // receive the unique scene loader plug interface ID from the file extension std::string ext = dp::util::getFileExtension( filename ); dp::util::UPIID piid = dp::util::UPIID( ext.c_str(), dp::util::UPITID( UPITID_SCENE_LOADER, UPITID_VERSION ) ); { dp::util::PlugInSharedPtr plug; if ( !dp::util::getInterface(localFF, piid, plug) ) { throw std::runtime_error( std::string( "Scene Plugin not found: " + ext ) ); } SceneLoaderSharedPtr loader = std::static_pointer_cast<SceneLoader>(plug); loader->setCallback( callback ); // add the scene path, if it's not the current path (-> dir.empty()) and not yet added localFF.addSearchPath( dp::util::getFilePath( filename ) ); // for supplied models add additional resource paths to make sure // that required resources will be found by subsequent loaders size_t pos = dir.rfind("media"); if ( pos != string::npos ) { string sdk(dir.substr(0, pos)); localFF.addSearchPath(sdk + "media/effects"); localFF.addSearchPath(sdk + "media/textures"); } dp::sg::core::SceneSharedPtr scene; try { scene = loader->load( filename, localFF, viewState ); } catch (...) { // TODO another non RAII pattern, callback should be passed to load loader->setCallback( dp::util::PlugInCallbackSharedPtr() ); throw; } if ( !scene ) { throw std::runtime_error( std::string("Failed to load scene: " + filename ) ); } // create a new viewstate if necessary if ( !viewState ) { viewState = dp::sg::ui::ViewState::create(); } if ( !viewState->getSceneTree() ) { viewState->setSceneTree( dp::sg::xbar::SceneTree::create( scene ) ); } } // FIXME interface needs to be released since the cleanup order (first dp::sg::core, then dp::util) causes problems upon destruction. dp::util::releaseInterface(piid); return viewState; }