前のページ次のページ上に戻るホーム BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0

3.2. ライセンス コードの詳細設定

3.2.1. キャッシュ オプション

ライセンス コードにはキャッシュ オプションが設定できます。キャッシュオプションは、ARM7, ARM9 またはUnified キャッシュを持つ CPU を区別するために存在します。例えば、ARM7 が搭載されている端末 (A5304T) では cache:none を指定しないとフリーズします。

キャッシュ オプションは以下の3種類があります。

heap://license_code#cache:none
heap://license_code#cache:unified
heap://license_code#cache:separate

取得したライセンス コードの後ろに #cache: を付け、その後にオプションを指定します。

一般的に BREW 2.1, 3.1 端末では指定無し、もしくは cache:separate オプションを指定します。

none unified separate undefined
ARM9 系 ×
ARM7 系 × × ×

例:ARM9 系の場合

*license = "heap://"
    "TB5U78VCX9TFS0UAT9Z9V3YNY7R7X6TEUAX2XQH9R1X4VKXFRIZ9SKVKSIYJYDUAUQVEX6UMUQTEVNSG"
    "GZ7T1SMVPT5VLYKVHTFWIEZ0Y3XIW7UQUKS1TAXBW1Y0V9UNGXMVMSARNSCT0R6RISHYIXJY7Y1VHUGZ"
    "AUAZ8RMUBXMVFW0VNU5XDRJSLPX9X4YCXHXFRFRJS6XQUCVPWEZ9UGYATCFV1TDWLRBW1Y0S6BY2XMZ6"
    "YIVHBWEV2WFSJHYCYASPUNDR9Y8VDU9XBVETBSNT5SPVDY5SIR4X3RMU8V2TNYPWMXBXMXGYCTHYCX1U"
    "3S7YQYIRJW3TLZAUO2W4XCVGYEYQR4S9T7XF6TFUEV8WB21";

例:ARM7 系の場合

*license = "heap://"
    "TB5U78VCX9TFS0UAT9Z9V3YNY7R7X6TEUAX2XQH9R1X4VKXFRIZ9SKVKSIYJYDUAUQVEX6UMUQTEVNSG"
    "GZ7T1SMVPT5VLYKVHTFWIEZ0Y3XIW7UQUKS1TAXBW1Y0V9UNGXMVMSARNSCT0R6RISHYIXJY7Y1VHUGZ"
    "AUAZ8RMUBXMVFW0VNU5XDRJSLPX9X4YCXHXFRFRJS6XQUCVPWEZ9UGYATCFV1TDWLRBW1Y0S6BY2XMZ6"
    "YIVHBWEV2WFSJHYCYASPUNDR9Y8VDU9XBVETBSNT5SPVDY5SIR4X3RMU8V2TNYPWMXBXMXGYCTHYCX1U"
    "3S7YQYIRJW3TLZAUO2W4XCVGYEYQR4S9T7XF6TFUEV8WB21#cache:none";

3.2.2. リソースへの埋め込み

ライセンスはリソース ファイル中に組み込むこともできます。

Boot 関数に以下のように記述します。

SFCApplet::FactorySPP SFCApplet::Boot(AEECLSID id, SFXAnsiStringPtr license)
{
    *license = "resource://res_file:res_id";

    // この部分はアプリによって変わります。
    return (id == AEECLSID_HELLOWORLD) ? (&HelloWorld::Factory) : (null);
}

res_file の部分にリソース ファイル名、res_id の部分にライセンス コード文字列のリソースID を記述します。

ライセンス コードはリソース ファイル内に文字列リソースとして以下のように格納します (実際には改行は無し)。

TIXDRQXNU5WHU8Y3Z9WOHWQR6Z3VPSDHDV5CR1S4XASPWLUHWAS7Z5Z2TGS3XMSAT3UPUQTLTARCYPSF
UEJZ6ROSJWGUQSEYKR6V2U4VESMTQLHKZ6X7Y2VKXHWIX3XBU0Z7VHWHXIZBSGT5SPU3XLX0Z1Y4R3TC
U6WGT9WHWIVNYHYCUCR9T3SMTEWPRNVAX1Y4VPW2YCY9YQV5R7Z9UIVHT6SDUPU2SIW6VCRCWBR2S4WQ
UPYFWCYGT4VIT1WHXGYPTQSFYPWNV3ULRNWFW7RBRFVKUKS2YQSQYHW1TPUPXBZ6UEY2WOYKR7S3TAU4
TQS6UHVFVEVLU3R5SDSKW7RPTNTPVQU2T4R8Z4VLUGEW3U98TLDR8

キャッシュ オプションをつけることもできます。

TIXDRQXNU5WHU8Y3Z9WOHWQR6Z3VPSDHDV5CR1S4XASPWLUHWAS7Z5Z2TGS3XMSAT3UPUQTLTARCYPSF
UEJZ6ROSJWGUQSEYKR6V2U4VESMTQLHKZ6X7Y2VKXHWIX3XBU0Z7VHWHXIZBSGT5SPU3XLX0Z1Y4R3TC
U6WGT9WHWIVNYHYCUCR9T3SMTEWPRNVAX1Y4VPW2YCY9YQV5R7Z9UIVHT6SDUPU2SIW6VCRCWBR2S4WQ
UPYFWCYGT4VIT1WHXGYPTQSFYPWNV3ULRNWFW7RBRFVKUKS2YQSQYHW1TPUPXBZ6UEY2WOYKR7S3TAU4
TQS6UHVFVEVLU3R5SDSKW7RPTNTPVQU2T4R8Z4VLUGEW3U98TLDR8#cache:none

3.2.3. ライセンス コードの書式

ライセンス コードの正確な書式は以下の通りです。

ライセンス コードをソースコード中に組み込む場合

heap://license_code
heap://license_code/
heap://license_code#cache:none
heap://license_code#cache:unified
heap://license_code#cache:separate
heap://license_code#cache:none/
heap://license_code#cache:unified/
heap://license_code#cache:separate/

ライセンスコードをリソースファイル中に組み込む場合

resource://res_file:res_id
resource://res_file:res_id/

ライセンスコードはリソースファイル内に文字列リソースとして以下のように格納します。

license_code
license_code#cache:none
license_code#cache:unified
license_code#cache:separate