タグ

ブックマーク / isobe.exblog.jp (4)

  • _variant_t を使用して、楽して安全にデータ変換 | あいそびの開発ノート

    VBやVBAJavaScriptなどでは、バリアント型というのがあって、どんな値も同じように楽に扱う事が出来ます。 変換もほとんど勝手にやってくれます。うらやましいですね。 でも大丈夫!VCでもバリアント型を使う事が出来ます!というお話。 Microsoft固有ですが、_variant_t という COM による VARIANT のサポートクラスを使用する事で、面倒な型間データ変換を安全に行う事が出来ます。 自分で実装すると、いろいろと問題が起こりがちです。 自分よりも優れた他人が作ったものを信用しよう!という趣旨で、行ってみます。 最初に _variant_t をお好みの値で初期化します。 _variant_t は バリアント型なので、(語弊はありますが)どんな値でも入れる事が出来ます。 数値で初期化するには、 などとします。 キャストしているのは、その値が整数型なのか、浮動小数点型な

    _variant_t を使用して、楽して安全にデータ変換 | あいそびの開発ノート
    babydaemons
    babydaemons 2017/02/08
    某O社系ベンダが作ったミドルウェアはcatchしてない件。orz "_varinat_t にて変換を行うときには、try ~ catch 構文を使用する必要があります。変換エラーの時には、COMの例外を投げてくるからです。"
  • MFCで発生するリンクエラー error LNK2005 はライブラリの読み込み順が原因 | あいそびの開発ノート

    リンクしています... nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) は既に LIBCMT.lib(new.obj) で定義されています。 nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) は既に LIBCMT.lib(delete.obj) で定義されています。 nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) は既に LIBCMT.lib(new2.

    MFCで発生するリンクエラー error LNK2005 はライブラリの読み込み順が原因 | あいそびの開発ノート
    babydaemons
    babydaemons 2015/06/23
    あー、クソ開発環境だ。orz
  • Run-Time Check Failure #2 - Stack around the variable 'xxx' was corrupted. | あいそびの開発ノート

    VC7でデバッグを掛けると、このエラーが起きる事がある。 エラーの意味としては、変数「xxx」のあたりのスタックが破壊されていますよ。というものだと思います。 原因はいくつか考えられる。 1つは、その変数や、そのあたりの変数にアクセスしたときに、確保した領域を超えて書き換えてしまった場合とか。 例えば、 こんな場合。 これだったら、話は早いんだけど、実際にはインデックスが計算で算出されていたり、ポインタの計算だったりと、意外とハマる事が多い。 もう一つは、クラスなどを更新したときに、サイズや定義が変わったのに、IDEが変更に気づいてくれない事がある。 気づいてくれないと、そのクラスを使用しているコードが再コンパイルされないので、おかしなことになる。 例えば、クラスに変数を1つ追加したけど、IDEが気づいてくれず、そのクラスを使用しているコードが再コンパイルされないと、そこコードの部分では、

    Run-Time Check Failure #2 - Stack around the variable 'xxx' was corrupted. | あいそびの開発ノート
    babydaemons
    babydaemons 2015/02/23
    これだった。“クラスなどを更新したときに、サイズや定義が変わったのに、IDEが変更に気づいてくれない事がある。気づいてくれないと、そのクラスを使用しているコードが再コンパイルされないので、おかしなことに”
  • Geckoコントロールを使用して自作ブラウザを作成する その1 | あいそびの開発ノート

    とある計画がありまして、Geckoベースのブラウザを作成しようと思っています。 とりあえず、Geckoを組み込むところまで。 使用する環境は、Visual C# 2008 Express Edition です。 ステップ1 まず、Mozilla のダウンロードサイトから、XULRunner なるものをダウンロードします。 ftp://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/ 現バージョンは、1.9.0.3 でした。 ステップ2 つぎに、Google Codeの geckofx プロジェクトサイトから、geckofx をダウンロードします。 http://code.google.com/p/geckofx/ ダウンロードしたら、適当な場所に解凍します。 ステップ3 Visual C# を起動して、適当なWindows

    Geckoコントロールを使用して自作ブラウザを作成する その1 | あいそびの開発ノート
  • 1