!!!バージョン情報(get_info)について Shade8.1.1プラグインSDKでは、グローバル関数の「get_info」にて 以下のように記載しても、product_name / author/company/commentsの 記述が無効になるようです(それ以外は効いている)。 extern "C" void STDCALL get_info (shade_plugin_info &info, shade_interface *shade, void *) { const bool japanese = shade->is_japanese_mode(); info.sdk_version = SHADE_BUILD_NUMBER; info.recommended_shade_version = 390000; info.major_version = 1; info.minor_version = 0; info.micro_version = 1; info.build_number = 0; // 以下はShade8.1.1では無効になる? info.product_name = "HelloShade"; info.author = (char *)"shade plugin book."; info.company = ""; info.comments = japanese ? (char *)"簡単なプラグイン" : (char *)"simple plugin."; } では、反映されない部分を反映させるにはどうすればいいでしょうか? 答えは[[SXUL|sxul_shade8sdk]]にあります。 Windowsの場合は「sample\resources\sxuls」内の「text.ja.sxul」「text.en.sxul」 がバージョン情報のリソースです。 実際はVC++ .NET2003のリソースファイル(script2.rc)にて以下のように 定義されています。 // 日本語 resources ... TEXT SXUL "..\\..\\sample\\resources\\sxuls\\text.ja.sxul" ... // 英語 (米国) resources ... TEXT SXUL "..\\..\\sample\\resources\\sxuls\\text.en.sxul" リソース名は「TEXT」です。実際はSDK内部でバージョン情報として利用しているようです。 OSXの場合は、「macos/plugins/ja.lproj/sxuls/text.sxul」 「macos/plugins/en.lproj/sxuls/text.sxul」がXcodeでリソースとして 参照されています(詳しくは「[[SXUL|sxul_shade8sdk]]」を参照)。 このSXULファイル「text.ja.sxul(OSXではtext.sxul)」を見てみましょう。 !!バージョンのSXULファイル 1行目を見ると、このファイルがUTF-8のXMLファイル形式であることが分かります。 get_infoグローバル関数の内容と同じですね。どうやらこれがget_infoで失われた 文字列部分のリソースとなりそうです。 「product_name」「author」「company」「comments」のvalueとして、 日本語リソース(SXULファイル)の場合は日本語で、英語リソースの場合は 英語で記述します。 後はShade自身が自動判別して言語による切り替えはしてくれます。 ただし、「major_version」「minor_version」「micro_version」 「build_number」は、SXULのが参照されずget_infoのが使われます。 まぁ、Shadeのバグでしょうかねぇ。