2016年04月13日

Windows Server 2016は、Windows 10と同じバージョン番号でいいのかな

そういえば、いじくるつくーるの最後の更新バージョンでは、環境情報の表示(CCPU)をWindows 10の判別に対応させていることについて書いています。

Windows のバージョン判別と、最近のGetVersionEx() のワナについては、管理人のふたことの記事を参照で。

Windows 10かどうかの判別は、「メジャーバージョン×10+マイナーバージョン=100 かつ OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION」になっているかどうかを見ています。

実はこのとき同時に、サーバ系のOS(OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION)であれば「Windows Server 2016」であることもわかるので、内部的にはそちらの判別にも対応しています。

ただ、対応していることを確認できるテスターがいなかったので、対応したことを宣言していません。
どなたか、Windows Server 2016が環境情報の表示(CCPU)でどう判別されるか、確認できる方はいらっしゃいますでしょうか。


posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | プログラミング

2016年03月10日

コンボボックスの誰得デフォルト設定の怪

WindowsのComboboxには、カーソルが入力領域の右端に達すると、それ以上文字が入力できなくなる設定があり、デフォルトになっています。
通常のエディットボックスと同様に、入力領域の右端に達してもそのまま入力を続けられるようにするには、AutoプロパティをTrueにしなければなりません。

cmbboxhaji.png

今回、改行コード変換を作成する上で、AutoプロパティをTrueにするのを忘れておりまして、入力領域までの分しかファイル名を入力できない状態になっていました。

入力領域までしか入力できない設定はデフォルトになっているので、Visual Studioを制作する上で、何かしら「その方が良い」という判断があったのだと思いますが、これはTrueになっていて欲しかったなぁ。

改行コード変換ライト v2.00.07β」では、この問題の修正を行っています。


posted by ayacy at 01:58 | Comment(3) | TrackBack(0) | プログラミング

2016年02月22日

printfで__int64の変数を表示するための%***の記号が、どうしても覚えられない

最近作っているプログラムで、進捗状況をバイト数で表示しています。

lcglite_ss_s_cmd.jpg

このプログラムでは2GB以上のファイルを扱えるようにしているので、バイト数で表示しようとすると、32bitのintでは足りず、64bitのintを使う必要があります。

Visual C++ の __int64 というやつです。

__int64の変数を、printf() 関数を使って画面表示したい場合、%d ではない別の記号を使うことになるのですが、それがいつも覚えられず、ググっています。
もう何十回目だろう。そろそろ覚えてしまいたい。

最近は、(本業の)自らの社員番号とか、会社から貸与された携帯電話の番号とか、新しい自宅の固定電話の番号とか、全部覚えられない。ああ、モノを覚えるのがどんどん厳しくなってくるな。年齢を感じます。


ちなみに正解は、

  (signed) __int64 … %I64d
  unsigned __int64 … %I64u

でした。

delctrlc_c.png


posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | プログラミング