The keyboard is used for several distinct types of input, including: Character input. Text that the user types into a document or edit box. Keyboard shortcuts. Key strokes that invoke application functions; for example, CTRL + O to open a file. System commands. Key strokes that invoke system functions; for example, ALT + TAB to switch windows. When thinking about keyboard input, it is important to
CDHtmlDialog はなぜ IE のユーザー補助設定に依存するのか・・・ というエントリもありましたが、本日ついに CDHtmlDialog ベースのアプリで IE の設定に依存しない方法がわかりました。 全ては、WebBrowser Customization (MSDN) に記載されておりました。IDocHostUIHandler::GetOptionKeyPath を適切に実装すれば良いだけです。翻訳されていればもっと早く気がついたのかもorz 日本語の情報だけを検索しているようではプログラマとしてダメダメですね。 詳細は、CrystalDiskInfo 3.9.0 Beta5 以降もしくは CrystalDiskMark 3.0.0h 以降のソースコード (CDHtmlDialogEx クラス) を参照してください。ただ、本来は自アプリケーションへのパスを設定するべきですが、
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
通常ディレクトリを作成する場合は、CreateDirectory関数を用いるが、この関数では1度に階層化されたディレクトリを作成することができない。 例えば、以下の例ようにCreateDirectory関数で階層化されたディレクトリを作成しようとするとエラーになり、GetLastError関数の戻り値は「3(指定されたパスが見つかりません。)」となる。 例:CreateDirectoryでカレントディレクトリに階層化されたディレクトリを作成する(エラーになる) if (!CreateDirectory(L".\\a\\b\\c\\d\\e\\f", NULL)) {//エラーになる printf("%d\n", GetLastError()); } そこで、階層化されたディレクトリを1度に作成したい場合は、MakeSureDirectoryPathExists関数を用いる。 MakeSur
ディレクトリの変更を監視するの変更を監視するには、ReadDirectoryChangesW関数を用いる。.NET Frameworkでは、System.IO.FileSystemWatcherがこの関数の機能に相当する。 ReadDirectoryChangesWのプロトタイプ BOOL ReadDirectoryChangesW( HANDLE hDirectory, // 監視するディレクトリのハンドル LPVOID lpBuffer, // 読み取った結果を受け取る // バッファへのポインタ DWORD nBufferLength, // lpBuffer の長さ BOOL bWatchSubtree, // ディレクトリまたはディレクトリツリーを // 監視するためのフラグ DWORD dwNotifyFilter, // 監視に使うフィルタ条件 LPDWORD lpBytes
ファイルが実行可能であるか調べるには、GetBinaryType関数を用いる。 GetBinaryTypeのプロトタイプ BOOL GetBinaryType ( LPCTSTR lpApplicationName, // ファイルのフルパス LPDWORD lpBinaryType // バイナリタイプ情報 ); 使用例 #include <windows.h> #include <stdio.h> int main() { char lpBuffer[1024]; GetSystemDirectory(lpBuffer, sizeof(lpBuffer)/sizeof(lpBuffer[0])); strcat(lpBuffer, "\\notepad.exe"); DWORD dwBinaryType; if (!GetBinaryType(lpBuffer, &dwBinaryTy
ビットフィールドの型には、Cの仕様上はint(またはsigned int、unsigned int)と、_Boolしか使えないことになっている。 しかし、殆どのコンパイラーは、charやshort/longなども(signed/unsigned含めて)利用でき、そして現実に最もよく使われているのはunsigned charに対するビットフィールドである。 ファームウェアなどでI/Oポートをビットで定義して使うような場合や、通信プロトコルの処理などによく使われる。 例えば、次のように定義する。 union { unsigned char data; struct { unsigned char FLAG4:1; unsigned char FLAG3:1; unsigned char :3; unsigned char FLAG2:1; unsigned char FLAG1:1; unsi
ファイルやディレクトリの名前や属性、サイズ、書き込み日時、セキュリティ属性変更の変更を検知する 使用するAPI FindFirstChangeNotification FindNextChangeNotification FindCloseChangeNotification HANDLE FindFirstChangeNotification( LPCTSTR lpPathName, // 監視するディレクトリの名前へのポインタ BOOL bWatchSubtree, // ディレクトリやディレクトリツリーの監視用の // フラグ DWORD dwNotifyFilter // 監視のためのフィルタ条件 ); dwNotifyFilterに設定可能な定数 FILE_NOTIFY_CHANGE_FILE_NAME監視中のディレクトリ、またはサブツリーでファイル名が変更されると、変更通知の待
この前後輩に聞かれたので書いときます。 【質問】 C++のプログラムで、Win32APIの関数名の先頭にスコープ解決演算子を付けているものがあるが、あれは何? 例 ::MessageBox( NULL, "Invalid Format", "Error", MB_OK ); 【回答】 答えは二つあります。 一つ目は単純に、VisualStudioを使用しているときに::とタイプすると IntelliSenseが働いて関数名一覧が表示されるので、楽に間違えることなくタイプできるということ。 二つ目は、MFCがWin32APIと同名のメンバ関数を実装していることによるものです。MFCのクラス内で、メンバ関数を呼ぶのか、Win32APIの関数を呼ぶのかを指定するために使います。 例えば、MFCのCWndクラスは、MessageBoxというメンバ関数を持ちます。 このクラスのメンバ関数の中で単にM
制御装置のファームウェアなどで整数の値を丸める必要があるときに、 切捨てや四捨五入で丸めると誤差の蓄積が問題になる場合があります。 例えば、16ビットの測定データの結果を十進数で 3桁に丸めて -99.9~+99.9 の値と して扱い、それを積算に用いるような場合が考えられます。 そのような場合は、JIS Z 8401 規則A にならって偶数丸めを行う方が良いです。 また、2進整数の右シフトによる安易な2の冪での除算は切り捨てと同様な誤差の蓄積をもたらします。 この場合も偶数丸めと同様な考え方で扱うのが好ましいです。 十進数の偶数丸め ●十進数の偶数丸めと、四捨五入による誤差の蓄積の例 誤差の例として、入力が 20~0 へと順次変化した場合の丸めの例を list.1 に示します。 入力を積算した場合の値 210 に対して 偶数丸めの場合には 210 と誤差が少なく(この場合は零に)なってい
概要 ここでは、非常にシンプルでフリーのデフラグソフト JkDefrag に関しての個人的な覚書を記す。 尚、JkDefrag 3.34 の書き直しとなる。 Build ソースファイルから実行ファイルを生成する場合には付属の Make.bat を利用すると簡単に行えるが、 特定環境に依存する記述内容なので、環境によっては若干修正が必要となる。 また、Makefile で all が指定されているので、 スクリーンセーバーなどの不必要なモノを省き、 普段必要とするものだけをビルドする様に修正しておくのも良い。 Make.bat ( Default ) rem @call "C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\SetEnv.Cmd" /2000 /RETAIL @call
ワード単位で操作したいので,4バイト型として(signed) int型を利用していた.符号なんて別に関係ないだろう,そう思っていた時期が僕にもありました. シフト演算を行う際に符号あり型の場合,右シフトした際の左ビットは0で埋められるとは限らない.1で埋められるとも限らない.(今回のケースでは1で埋められた) 確認コード #include <stdio.h> int main (void) { int a = -1; // unsigned int b = -1; fwrite(&a, sizeof(int), 1, stdout); // fwrite(&b, sizeof(int), 1, stdout); a >>= 8; // b >>= 8; fwrite(&a, sizeof(int), 1, stdout); //fwrite(&b, sizeof(int), 1, stdo
トップページ - 翻訳ドキュメント - ハンガリアン記法 by Doug Klunder 原文:http://www.byteshift.de/msg/hungarian-notation-doug-klunder 原文との対訳として読みたい方へ:このページをローカルに保存して、スタイルシートの original クラスの display 属性を none から block に変更してみてください。 訳注※:上記リンク先のHTML文書には、さらに大元の非HTML文書が存在しているようです。そこからHTMLへの変換時に体裁の崩れている部分があるようで、推測で加筆/修正しています。そんな中でも大きく修正した部分(主にコードサンプル)には、「訳注※」としてコメントと原文とを記述しています。 Troff version at unlser1.unl.csi.cuny.edu Troff バージョン
値渡しと参照渡しは、分かってしまえば何も難しいところはないんだけど、分かるまでにちょっとした壁があるというかなんとうか・・・ てことでちょっとまとめておきますねー 値渡し (call-by-value) と参照渡し (call-by-reference) の違い 値渡しと参照渡しの違いは、「呼出し元の値自体を変更できるかどうか」と説明されることが多い。 しかし、例えば Java ではミュータブルなオブジェクト *1 を渡した場合、呼出し元の値自体を変更できるという勘違いをする可能性があるため、この説明はあまり好ましくない。 そのため、参照渡しを「呼出し元の別名を渡している」と覚えるのが分かりやすいと思う。 値渡しは「何かの値をコピーして渡している」と覚える*2。 Java の場合 Java には値渡ししか存在しないが、「参照型」のためにややこしく感じる。 参照型は参照渡しとは無関係で、C
常駐型のプログラムでよくあるのが、通知領域(俗にタスクトレイと呼ばれます)に常駐するというやつです。 普段はウィンドウが表示されていないけど、通知領域のアイコンをクリックとかするとウィンドウが開くというものです。 こういうのを実現してみましょう。 私は、以下のようにして実現するのがいいと考えました。 目に見えない「メインウィンドウ」を作成する。 メインウィンドウが作成されたら、通知領域にアイコンを追加する。 通知領域のアイコンがクリックされたらメインウィンドウに通知されるようにする。 メインウィンドウは、通知を受けたらそれに対応した動作を行う。 以上です。 目に見えない「メインウィンドウ」を作成する理由ですが…。 当サイトで公開している「看板」というソフトのバージョン 1.xx では、このようなメインウィンドウを作成していませんでした。 ダイアログベースでプロジェクトを作成し
ABCLのソースを読んでるうちにスコープとエクステントについてだんだんわかってきたので、自分なりに少しまとめてみた。合ってるかどうかはわからないので、すべてに?がついていると考えてください。 スコープ アクセス可能な場所的範囲 エクステント アクセス可能な時間的範囲 言語 種別 スコープ エクステント コンパイラ・インタプリタでの検索方法(典型例) 実装上の領域(典型例) C ローカル(auto)変数 ブロック内 ブロックに入って時点から出た時点まで 関数の変数宣言リスト スタック C ブロック内のstatic変数 ブロック内 プログラムの開始から終了まで 関数の変数宣言リスト データ領域 C トップレベルのstatic変数 ファイル内 プログラムの開始から終了まで コンパイル単位の変数宣言リスト データ領域 C グローバル変数 ファイル内、extern宣言により別ファイルの変数を参照可
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く