投稿者 魔界の仮面弁士  (社会人) 投稿日時 2021/10/18 10:56:52
> 16文字目までNullCharが入っています。
いえ、入らないと思いますよ?
提示されたコードで後続に LSet される文字は、ChrW(0) ではなく ChrW(32) ですよね?

そして ChrW(32) を取り除くだけなら、
 PcName = NameBuffer.TrimEnd(" "c)
あるいは
 PcName = NameBuffer.TrimEnd()
あるいは
 PcName = RTrim(NameBuffer)
で十分のはずです。


また、もしも本当に NullChar で 16 桁にパディングしたいのであれば、LSet ではなく
 NameBuffer = Environment.MachineName.PadRight(16, vbNullChar(0))
などとすべきですし、その NullChar を取り除く処理は
 PcName = NameBuffer.TrimEnd(vbNullChar.ToCharArray())
と書けます。