HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0425
princehspinetで小数値のjsonオブジェクトを読み込む方法2解決


prince

リンク

2015/4/25(Sat) 20:53:06|NO.68762

hspinetを改造します。
1.OpenHSPからtrunk/plugins/win32/hpi3sample 及びtrunk/plugins/win32/hspinetをダウンロード
2.同じ場所に解凍
3.trunk/plugins/win32/hspinet/main.cppの関数jsongetiの下に(1022行)以下の関数を追加

EXPORT BOOL WINAPI jsongetd(HSPEXINFO *hei, int p1, int p2, int p3) { // (type$202) // JSONオブジェクトから小数値を得る // jsongetd 変数, "名称", JSONポインタ // PVal *pv; APTR ap; char *ss; int _p3; char name[1024]; cJSON *root; ap = hei->HspFunc_prm_getva(&pv); // パラメータ1:変数 ss = hei->HspFunc_prm_getds(""); // パラメータ2:文字列 strncpy(name, ss, 1024); _p3 = hei->HspFunc_prm_getdi(-1); // パラメータ3:整数値 if (_p3 == 0) return -1; if (_p3 < 0) { root = json; } else { root = (cJSON *)_p3; } if (*ss != 0) { root = cJSON_GetObjectItem(root, name); if (root == NULL) return -1; } hei->HspFunc_prm_setva(pv, ap, HSPVAR_FLAG_DOUBLE, &root->valuedouble); // 変数に値を代入 return 0; }
4.コンパイル、作成されたDLLファイルをHSPインストールフォルダにコピー
5.55行目(jsongeti)の下に以下の内容を追加
#func jsongetd jsongetd $202

6.jsongetdという命令が追加されました。



この記事に返信する


prince

リンク

2015/4/25(Sat) 20:54:26|NO.68764

使い方はjsongetsやjsongetiと同じです。
コンパイル方法などはここには書かないのでググってください。



prince

リンク

2015/4/25(Sat) 21:38:53|NO.68767

zipにしてまとめておきました。
https://kie.nu/2x6v



ONION software Copyright 1997-2023(c) All rights reserved.