TTXBind()関数の引数 Version の仕様
Eröffnet am: 2022-04-22 07:57
Letztes Update: 2022-05-13 06:52
Auswertung: | tomo3136 | Verantwortlicher: | (Keine) |
---|---|---|---|
Priorität: | 5 - Mittel | Meilenstein: | (Keine) |
Typ: | Funktionsanfragen | Schweregrad: | 5 - Mittel |
Komponente: | Tera Term | Status: | Offen |
Lösung | Keine |
Einzelheiten
TTXプラグイン登録時 TTXBind() 関数呼び出しの引数 Version は以前から 23 となっている。
特に意図していないなら Teraterm Pro version 2.3 を指す?23ではなく、動作するTeratermのバージョンを指定してもよいのではないでしょうか。
Kommentar
そうですね。お作法は破られていますね。
お作法通り、追加するなら一番最後とするのが下位互換性を保てて良いかと思いますが、v4.xx の間にも何度か構造体のバイナリ互換性は失っています。
「Tera Term 5 について」https://ttssh2.osdn.jp/manual/5/ja/usage/migrate_to_5.htmlにて、
最後の行に「まだ変化する予定(メンバ名、順序、サイズ、型などなど)。」とあるので、
パス名が固定長配列から動的配列に移行したり、今後も構造が変わり、バイナリ互換性は失うと推測されます。
考え方を変え、お作法守るよりは、ビルドは最新のみとし、できるだけ下位互換性を得られるように
構造体のマッピング変換機能を持たせるようにしてみました。
テスト用のプラグインのソースコードを添付します。(TTXTest_TTTypes.zip)
配列サイズが異なったり、細かい個別案件はあるものの 8 割くらいは、下位互換性を持たせられると思います。
v5.0 でビルドしたプラグインを v2.3 の環境にもっていってもボーレートの値 (ts->Baud) を取得できます。
プラグインが使用する構造体のメンバーは通常ほんの一部しかないのと思うので、プラグインの下位互換性を考慮して
構造体の変更にブレーキをかけるよりは、健全かなと思います。
構造体のバイナリ互換をあまり気にしなくなっても、大きく変更したらやはり互換性を保てなくなるので なんでもできるわけではないのですが。。。