掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
GetComputerNameについて (ID:9185)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> pcComputerは、「GetMem(pcComputer, 255);」をしていますが、 > これでは不十分でしょうか? コンピュータ名の最大長は15バイトですので、Char型の配列を使って 16バイトを確保しておく方がよさそうです。(1つ多いのはヌルの分です) > また、dwComputerSizeは特に設定していませんが、 > これだとやはりまずいですか? ちょっとまずいかも。(笑) > 今まで、これらの設定をしていなくても普通に動作していたのは、 > 偶然なのでしょうか? XP上でバッファの長さを指定しないで実行してみると正常に動作しました。 APIの内部仕様が変更されたのかもわかりません。 ですが、98の場合はOSが第2引数の値を参照していると思います。 どちらにしてもバッファの長さは指定しておくべきでしょうね。 procedure TForm1.Button1Click(Sender: TObject); var Buffer: array[0..MAX_COMPUTERNAME_LENGTH] of Char; nSize: DWORD; begin nSize := SizeOf(Buffer); GetComputerName(Buffer, nSize); ShowMessage('現在のコンピュータ名は ' + Buffer + ' です。'); end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.