# TTX プラグインの Teraterm5 対応1 2021/12/10 ## バイナリ互換 ### TeraTerm4 (4.106) でビルドしたプラグインが Teraterm5 (trunk) で動作するか? プラグインが Teraterm5 に組み込まれてメニューなどは動作する。\ しかし、部分的に意図しない動作になることも多く、バイナリ互換はないと認識したほうが良い。 |プラグイン|動作結果|結果| |:--------|:-------:|:-----| |TTXDuration|△制限付き|TTXSetupHooks.ParseParam の引数が wchar_t* に変わったため
コマンドラインオプションで動作を指定できない| |TTXReport|?未確認|動作確認出来る環境が手元に無いので未確認| |TTXReconnect|?動作しない|tttset 構造体の AutoComPortReconnect の位置が異なるため動作しない| |TTXPlugin|〇動作する|| |TTXEnv|△制限付き|設定環境の複製は動作する。tttset 構造体の SetupFNameW に対応していないため
設定環境の切り替えは動作しない| |TTXPackage|〇動作する|| |TTXShortcut|〇動作する|| |TTXUserKey|〇動作する|| |TTXEstimateMismatch|〇動作する|tttset 構造体が途中からずれることを確認(正常動作)| ||| ※ `△制限付き` と `?動作しない` の違いは、主要機能が動作するか。主要機能が動作しなければ `?動作しない` とした\ ※ tttset 構造体の UILanguageFile の位置が異なり、日本語か判別できないためメニューは英語表示のみ\ ※ tttset 構造体は、HomeDir から EtermLookfeel.BGThemeFile まではバイナリ互換 ### TeraTerm5 (trunk) でビルドしたプラグインが Teraterm4 (4.106) で動作するか? 関数の引数が `char*` から `wchar_t*` に暗黙にキャストしてる時点でアライメント違反により、ハングアップする可能性があり、確認しても意味がない。\ 確認しない。 ### バイナリ互換についての結論 Teraterm4 と Teraterm5 のプラグインのバイナリ互換性は低い。\ バイナリ配布するなら、Teraterm4 系と Teraterm5 系を用意したほうが良い。 プラグインだけの場合は、Teraterm4 系に組み込むか Teraterm5 系に組み込むかは使用者の判断となり、間違う可能性があり悩ましい。(インストーラで判断が妥当かな?)\ とりあえずは、組み合わせは間違えないことのドキュメント明記と、ファイル名に Teratem4 用か Teratem5 用かをわかるようにしておくことがの望ましい。 TTXAdditional にソースを配置して All In One としてビルドするには問題ない。