任务单 #45641

PCreateFile() 関数の引数の不定要素を排除してほしい

开放日期: 2022-09-11 22:00 最后更新: 2022-10-03 23:56

报告人:
属主:
状态:
关闭
组件:
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
Fixed
文件:
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

プラグインでフックできる TTXFileHooks.PCreateFile の定義は、以下である。

typedef HANDLE (PASCAL *TCreateFile)

(LPCTSTR FName, DWORD AcMode, DWORD ShMode, LPSECURITY_ATTRIBUTES SecAttr,
DWORD CreateDisposition, DWORD FileAttr, HANDLE Template);

FName の型は、 LPCTSTR となっている。

LPCTSTR は、const char * に変換されるか const wchar_t * に変換されるかビルドオプションによる。 現状は、 const char* に変換される。

可能なら、どちらかに固定化してほしい。

確認: trunk/r10245

任务单历史 (3/7 Histories)

2022-09-11 22:00 Updated by: tomo3136
  • New Ticket "PCreateFile() 関数の引数の不定要素を排除してほしい" created
2022-09-25 00:57 Updated by: zmatsuo
评论

修正しました。

r10289 です。

2022-09-25 09:57 Updated by: tomo3136
评论

修正ありがとうございます。

一応確認。PCreateFile() 関数の、引数 FName は、Unicode化の対象外でしょうか。

プラグイン呼び出し時にコード的に固定されていないと扱いにくいと思いチケットを登録しましたが、

自分は、この関数の引数 FName で何かをしたことはなく、char* がいいのか wchar_t* がいいのかは わかっておりません。

Unicode化の対象なら、commlib.c のPCreateFile() 関数の呼び出し箇所3か所前で、Unicode化し、

PCreateFile() 関数処理後割り当てメモリを破棄すればいいように思えますがいかがでしょうか。

2022-09-27 23:44 Updated by: zmatsuo
评论

デバイスファイル名(\\.\COM%d のようなファイル)だったら よさそうと思ったのですが、ログファイル名を引数に取るなら Unicode化したほうがよさそうです。

まだこのあたりの動作はよく見ていなくて、 どうするのがよさそうかまだ見えていません。

Unicode化は後回しにさせてもらって、とりあえず、不定要素を排除できたと いうことでこのチケットをクローズしようかと思います。

2022-09-29 22:31 Updated by: tomo3136
评论

わかりました。とりあえず ASCII/MBCS で進めます。

Teraterm 5.0 が正式リリースされてから Unicode化する場合は、 ts->RunningVersion か、TTXBind() のバージョン引数で認識できれば良いかと思います。

2022-09-29 22:51 Updated by: tomo3136
评论

trunk/r10289 で UNICODE 設定でビルドしても、しなくても PCreateFile() の引数FNameは char* として認識されることを確認しました。

2022-10-03 23:56 Updated by: zmatsuo
  • 状态 Update from 开启 to 关闭
  • 属主 Update from (无) to zmatsuo
  • 处理结果 Update from to Fixed
  • 组件 Update from (无) to Tera Term
评论

確認ありがとうございます。

クローズします。

忘れないようPluginのRemindsチケットを作りました。#45765

Attachment File List

No attachments

编辑

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登录名