タグ

C++に関するipusironのブックマーク (10)

  • Paken.NET | TCHAR型のススメ

    C/C++Windowsプログラミングをやり始めたとき、誰もが一度は嫌になるあの謎のデータ型。 "LPCTSTR"なんてのはその典型例です。 しかし、これが何かを知らぬまま放っておいてる、ということが意外とありがちなんですよね。 というわけで、一応簡単に解説しておくことにしよう、と思ったまでです。 ※ 開発環境は、Microsoft Visual C++ 2005 を想定しています。 1.UNICODE 文字コードとはつまり、数値と文字の関係を示したものです。 文字'a'は128で表し、文字'b'は129で表し・・・と文字と数値が一対一で対応して定められています。(数値は適当です) UNICODEも、その文字コードの一種で、古い文字コードのASCIIに比べて新しいものです。 NT系のWindowsには全て対応しているので、現在のほとんどの環境がUNICODE対応となっています。 だったら

  • jsoncpp を試す - てっく煮ブログ

    C++ で JSON を扱う必要があったので、jsoncpp というライブラリを試した。VC++ 2003/2005 で警告なしでビルドできた。すばらしい。パース簡単。 std::string str = "{\"key1\":\"value\", \"key2\":true}"; Json::Reader reader; Json::Value root; bool b = reader.parse(str, root); オブジェクトの参照も簡単。厳密にやったらこうなる。 if(root.type() == Json::objectValue){ if(root.isMember("key1")){ Json::Value key1 = root["key1"]; if(key1.type() == Json::stringValue){ printf(key1.asCString()

  • サマータイム - Throws to a garbage can...

    GetTimeZoneInformation を利用して、サマータイムを取得。 ごにょごにょした結果、とりあえず動作の把握完了。 1.GetTimeZoneInformation の戻り値で、現在サマータイム期間か通常期間かの判別可能 TIME_ZONE_ID_UNKNOWN サマータイム制度が無い TIME_ZONE_ID_STANDARD サマータイム制度あり、現在標準時刻帯 TIME_ZONE_ID_DAYLIGHT サマータイム制度あり、現在サマータイム時刻帯 TIME_ZONE_ID_INVALID エラー、どんな時に出るか不明 2.上の呼び出しで格納された TIME_ZONE_INFORMATION で、シフト時刻取得可能 TIME_ZONE_INFORMATION.Bias 標準時差情報(分) TIME_ZONE_INFORMATION.DaylightBias サマータイム

    サマータイム - Throws to a garbage can...
    ipusiron
    ipusiron 2011/08/29
    GetTimeZoneInformationの戻り値で判定
  • Java総称型メモ(Hishidama's Java Generics Memo)

    メソッドの総称型 メソッドのみに総称型を適用した定義を行うことも出来る。[2007-06-12] 戻り値の型の直前に「<仮型引数, 仮型引数…>」を置くだけ。後はクラスの場合と同様。 public static <T> T notNull(T arg1, T arg2) { T ret; if (arg1 != null) { ret = arg1; } else { ret = arg2; } return ret; } このメソッドを呼び出す側は、クラスの場合とは異なり、明示的に型引数を指定する必要は無い。 指定した引数の値に応じて、自動的に型が判断される。 String s = notNull("abc", "def"); //型引数はString Long l = notNull(new Long(1), new Long(2)); //型引数はLong int i = notNu

  • Javaのジェネリックは所詮ただのダウンキャスト回避-My Little Hip By MyPROFILE

    C++のテンプレートを使いこなせるとすごく便利(C++は全然書けないけど)、というのはJavaのジェネリックが所詮ダウンキャストをソースコード上から排除するためのシンタックスシュガーである!ことを痛感するとより一層強く感じる。(何を今更!?って思う濃ゆいJavaプログラマーも多いと思うが)脳内でクラスを考えて書き始めると、テンプレートを期待したデザイニングをしていてJavaじゃインプリメントできないじゃん orz となる事が多い。 例えばJAXB2.0の汎用ラッパを作ろうとしたとき、 public class XmlSerializer<T> { ... public T deserialize(final InputStream in) //例外処理は省略 { final JAXBContext jbctx = JAXBContext.newInstance(T.class

  • CProgHowTos - Engineering HowTos

    C/C++言語でのプログラミングについてのHOWTO/FAQ集。 対象とする開発環境はGNU GCC(Linux, Cygwin, MinGW)、Borland C、Microsoft Visual Studio 6.0/2005/2008 など。

    CProgHowTos - Engineering HowTos
  • 初心者のためのVC サンプル構文

    エディットボックスの、Value のメンバ変数について、特に指定がない場合は、CString型にしてください。 フォームビューからダイアログベースには、簡単にコードを置き換えられるので、フォームビューを基としています。 ダウンロードサンプルは、.NET2003と、2005 (2008) の両方あるページについては、 2003 → MBCS、2005 (2008) → ユニコードと、切り分けました。 MBCS のコードを知りたい場合には、お手数ですが、2003のサンプルをダウンロードして、コードを確認してください。 .NET2003の開発環境がなくても、メモ帳でファイルを開くことは可能です。 TCHAR型を使っていますので、ユニコードライブラリを使わないアプリケーションでも、ページに掲載したコードは、原則として通るはずです。 VC++6.0について CLI についても、ペー

    ipusiron
    ipusiron 2008/08/12
    ListViewの高さ取得など
  • 第110章

    今回は、リストビューのソートについて解説します。 ちょっと面倒ですが、型どおりにやればどうということもありません。 前回のリストビューと同じデータです。(年齢を追加してあります) 「名前」ボタンを押すと名前が昇順に並びました。もう一度押すと 逆の順に並びます。「年齢」ボタンを押すと年齢順に並び変わります。 また、並び替えを行った後その他の表示状態(大きいアイコンなど)を 変更しても並び替えは有効です。 では、どのようにすればよいのでしょうか。 まず簡単な手順を示します。 1.項目データのLV_ITEM構造体のmaskメンバにLVIF_PARAMを加える 2.どのサブアイテムを基準に並び替えるたかを保存する配列を用意 3.通知メッセージでどの列ボタンが押されたかを知る 4.その列の並びが今まで昇順だったら降順に、降順だったら昇順を 表すように2の配列に書き込む 5.ListView_Sort

    ipusiron
    ipusiron 2008/08/12
    ListViewのソート
  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

  • WinSock2を使用したパケットモニターの作成:CodeZine

    はじめに 稿では、WinSockでパケットモニターを作成し、WindowsRAWソケットを扱う方法を紹介します。また、GUIプログラムを作成する場合に必須となる「非ブロッキングモード」や、すべてのパケットを取得するための「プロミスキャスモード」についても触れます。 取得したパケットをプロトコルにしたがって表示する処理については、WinPcapを使用したパケットモニターの作成で解説しましたので、詳しくはそちらを参考にしてください。 対象読者 WindowsC++を使用してネットワーク関連のプログラムを作成される方。 パケットモニターの作成に興味をお持ちの方。 必要な環境 サンプルプログラムは、Windows 2000以降のOSで動作します。 サンプルコードは、C++ Builder 6およびVisual C++ .NET 2003でコンパイルが可能です。 WinSoc

  • 1