変なところで頭が「?」状態でした(^^;(’14/9)
8月にWindows8.1搭載の新PCを購入し、その後、既に書いているようにMicrosoftが一般
配布している無料のVisualStudio2013Expressをダウンロードして以来、Expressでは省略
されているリソースエディタはネットで複数の方が推奨されている"ResEdit"という海外フ
リーソフトを入手し、また、Microsoft自身がちょっと古いですけど、SDKについて説明され
ているMSDNライブラリを無償でネット公開していることから、永遠のビギナー(私の場合、
昔、個人の遊びでQCを独習していたことやその後、VC6.0、VC2003.NETを購入所
有−但し、あくまで所有していただけですが(^^;)−していて、個人でVC++をかじりかけ
たりしていましたけど、必然性と根気の欠落で完全な初心者ではないものの未だ、ビギ
ナーと何ら変わらない)の私にとって、遊びでかじる程度なら十分な感じで、結構嵌って
ます。
既に、前項(⇒ここ)で触れましたように、
質素なデジタル時計、アナログ時計プログラム
の他、同様にGetLocalTimeというAPI使っての簡単なカレンダープログラム(これから当
日の月、日、曜日が取得できますので、そのデータを用いて、当月以降、その年の12月
までのカレンダーを表示するものです。起動した日は四角で明示されます)も作成してみ
ました。ちゃんと動いたときは素直に嬉しいものですね。子供みたいな気持ちです(^^;。
さて、実は、ネットにいくつもあるありがたいWin32API+VC++プログラミングの基礎的事
項を説明していただいているサイトがあり、大いに参考にさせていただいているところで
す(以前、いくつか本を所有していたのですが、一番基礎的な内容の本以外の肝心の
二冊がともにどこかに紛れ込んだか見つからないので、本当にありがたいですm(__)m。)
ただ、実は、そういう説明で、よくみかけたのは、"_T"マクロと_tcslenという関数。
何も考えず、windows.hだけincludeした状態で、使おうとしたら、コード段階で赤波線の
下線表示(エラー)・・・。「ええっ???」てなものです。
そもそも、知らなかったんですが、VisualStdioは2005.NET以降、デフォルトをUNICODE
にしたようで、文字関数についてはワイド文字用となって、ANSI(日本語はダブルバイト
文字)専用関数はコード段階で刎ねられてしまいます。で、元々TEXT(" ")やTCHARと
いうのは、バイブルのようにしていて今はどこかに紛れ込んでしまっているMicrosoft出
版社発行のWindowsプログラミングという本にしたがって使うのが当然と思っていたの
で拘りはありませんでしたが、せがれの示唆もあり、ま、どうせUNICODEなら個人だけ
の遊びだからとTEXT(" ")の代わりにL" "としたり、文字長取得はwcslenを使ってちゃ
んと動いてはいました。でも、書いてあれば、確認したくなるじゃありませんか?
で、まず、_Tを試しましたが、「だめ〜」とエラー赤並下線・・・。で、確か以前は、Winnt.h
に記載されていたはずとみてみたら、「が〜ん」。TEXTマクロしか定義されていな〜い。
まさか省略してしまったのかと思ったんですけど、_Tが使えないなどという記事はネット
上には皆無で、キョロキョロ状態その1でした。
更に、もう一つ。なんとどちらでも動くとされている_tcslenも「だめ〜」とエラー赤並下線。
「そんな〜」状態の私。ネット調べてもそんな記事なし・・・。
そうしたら、あるサイトに、_tcslenはtchar.hをIncludeする必要があるとありました。
しかし、#Include まで書くと出てくる候補にtchar.hが見当たらない???
ところが、試しに、#include <tchar.h>と追記しましたところ、「エラー表示なし」。
それではと、_Tを試しましたら、OK(^◇^)。そして、_tcslenもOK(^◇^)。
しかし、実は私の中に一つの疑問が・・・。結局、勘違いだったわけですが。
ネット漁っている中で、やっと自分が勘違いしていた記述に出会いました。
実は、私、ダウンロードされたInclude fileはほとんど、
\Program Files(X86)\Microsoft SDKs\windows\v7.1A\Include
だけにあるものと思い込んでいたんです。で、実はここにはtchar.hはありません。
ですけど、使えるということはどこかにあるはず・・・。実は、
Program Files(X86)\Microsoft Visual Studio12.0\VC\Include
ここにありました。Program Files(X86)\Microsoft Visual Studio12.0は覗いたんですが、ま
さかそこにあるVCというホルダの中にあるとは思いもつかず(^^;。
色々ネット漁っている中で、まれに不完全なインストールを「無事インシトールされた」と表
示されたという話がありましたので、それかいなと大騒ぎしてせがれに迷惑がられました(^^;
ふと思ったんですが、昔はVC++は単体売りでしたけど、今はVC++はVC#、VBもつい
てくるので、共通なのと、古くからのC専用標準とを分けたのかなぁ・・・
ま、つまらんことなんですけど、tchar.hの中が見たかったのでね。
しかし、よくよく見たら、気なしに使ったmath.hもこちらにありました(^^;
戻る