Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

C++とProgrammingに関するhirocuekiのブックマーク (15)

  • COM インスタンスを作成する

    ここの備忘録は、あくまでも走り書き程度のメモ的なものですので気をつけてください。 そのままでもちゃんと動くもの、手を加えないとだめなものなど、未完成レベルのコードです。ので、そのまま引用してしまうなど、プログラムを理解する知識のない方は利用しないでくださいね。 今回は Visual Studio .NET の Visual C++ 7.0 で作成した ComTest という COM コンポーネントを同じく Visual C++ 7.0 のプログラム内で使用するという感じのお話です。VC++ 6.0 とは少しやり方が違ったようなので、まとめて見ました。 ComTest というコンポーネントには、IComTest インターフェイスと、CComTest という CoClass が用意されているものとします。タイプライブラリファイルは _ComTest.tlb です。

  • C++の便利ツール・ライブラリ - DO++

    フルタイムで働きはじめて4ヶ月。 いろんなことがありました。 今日はインターンが来ているということもあり日頃のC++コーディングライフの中で大変重用しているツールを紹介します。といってもどれも有名なツールでググれば解説がでてくるとは思いますので、一言ずつだけ紹介してみます。みなさんも何かよさげなライブラリ・ツールがありましたら教えてください。 - valgrind/callgrind/cachegrind プログラムの実行結果を解析するツール群。まぁ、王道であえて紹介する必要はないかもしいませんが.。valgrindはプログラムのどこかでメモリが漏れているかどうかのチェックに使います.コードのどの部分で確保した領域がどこで漏れているかまで追跡することができます valgrind --leak-check=full command プログラムのどのが計算量的にボトルネックになっているかを調べ

    C++の便利ツール・ライブラリ - DO++
    hirocueki
    hirocueki 2010/08/17
    便利なツールがあるのは知ってたけど、簡潔にまとめられていていいですね!使ってみよう、ありがとう!
  • C++の話(本当にあった怖い話)

    The document discusses C++ and its history and features. It describes C++ as an extension of C with object-oriented features like classes. It provides information on the creator of C++, Bjarne Stroustrup, and the evolution of C++ since its introduction as a way to add object-oriented programming to C. It also includes sample C++ code demonstrating the use of arrays and includes from the Boost libr

    C++の話(本当にあった怖い話)
  • C++のクラスをマスターしよう(前編)(1/5) - @IT

    書籍転載 文法からはじめるプログラミング言語Microsoft Visual C++入門 C++のクラスをマスターしよう(前編) ―― 第10章 クラス~オブジェクト指向プログラミング(前編) ―― WINGSプロジェクト 矢吹 太朗(監修 山田 祥寛) 2010/05/19 コーナーは、日経BPソフトプレス発行の書籍『文法からはじめるプログラミング言語Microsoft Visual C++入門』の中から、特にInsider.NET読者に有用だと考えられる章や個所をInsider.NET編集部が選び、同社の許可を得て転載したものです。基的に元の文章をそのまま転載していますが、レイアウト上の理由などで文章の記述を変更している部分(例:「上の図」など)や、図の位置などをサイトのデザインに合わせている部分が若干ありますので、ご了承ください。『文法からはじめるプログラミング言語Micros

  • プログラマの友

    ここでは、プログラムに関する色々なことを書いていこうと思います。更新は少ないですが、できるだけ役に立つ情報を載せられたらいいと思っています。でも、性根がひねくれているので、変なことばっかり書くかも知れません。(^ ^; なにぶんロベールもまだ未熟者なので、内容に誤りがある可能性があります。もし誤りを見つけたら「あー、こいつバカなこと言ってるぜ」と傍観してないで、メールで知らせて下さい。

  • アプリケーションの変換

    現在の 32 ビットアプリケーションでは integer、pointer、long が同じサイズであるとみなされることが多くあります。LP64 データ型モデルでは、long と pointer のサイズが変更されているため、この変更だけでも、ILP32 から LP64 への変換で多くの問題が発生する可能性があります。 また、宣言と型変換を調べることも非常に重要です。データ型が変わると、式の評価方法が影響を受ける可能性があります。標準的な C の変換規則の働きも、データ型のサイズの変更の影響を受けます。意図したこと正しく示すには、定数の型を明示的に宣言してください。式で型変換を使用して、意図したとおりに式が評価されるようにすることもできます。このことは、意図したことを指示する上で明示的な型変換が欠かせない符号拡張部で特に必要になります。 単一ソースコードの実現 この節では、32 ビットと 6

  • いやなブログ: Cのポインタを整数に変換する

    Cのポインタを整数に変換する Cのポインタを整数に変換したいときがあります。このとき問題になるのは、ポインタのサイズが int と同じとは限らないということです。たとえば、 x86_64 の 64ビットのバイナリでは sizeof(int) = 4, sizeof(void *) = 8 となります。ポインタと同じサイズの整数を使いたい場合は C99 で導入された stdint.h で提供される intptr_t または uintptr_t を使います。 stdint.h には他にも int32_t や int64_t など、サイズつきの整数の型も提供されています。たとえば、uint64_t を使うと、64ビットの符合なし整数を扱うことができます。 私の場合、C++ のプログラムで void * から直接 uint64_t にキャストしようとしてはまりました。次のプログラムを x86_32

  • Big Sky :: C++で軽量Webサーバ書いた。

    書いたといっても結構前からあったのですが、いらん所を削ぎ落として軽量Webサーバとして仕立て上げました。 軽量とは言えど、CGIを使って結構色々動きます。 例えば、ソースアーカイブを解凍したらCGIがあって、apacheから見える場所にコピーして...とか面倒くさかったりしますよね。 おれは今すぐWebサーバを起動したいんだ!そして今いるディレクトリのファイルをWebサーバからサーブしたいんだー! って事ないですか?blogソフトウェアをダウンロードして今すぐ試したいけど、apacheインストールされてなかった...とか悲しすぎます。 今回紹介する"tinytinyhttpd"(tthttpd)はそんな、小さい様で大きな問題を解決出来るかもしれないソフトウェアです。 mattn's tinytinyhttpd at master - GitHub tiny tiny httpd http:

    Big Sky :: C++で軽量Webサーバ書いた。
  • 矢沢久雄の早わかりGoFデザインパターン(1) | 日経 xTECH(クロステック)

    今回は、パターンを1つだけ紹介します。「Mediatorパターン」です。GoFでは、それぞれのパターンの「目的]「背景」「効果」などが明示されています。私も、ちょっと真似をしてみましょう。複数のオブジェクトを組み合わせてプログラムの機能を実現するという目的において、オブジェクト間の関連がゴチャゴチャになってしまうという背景(問題)があり、Mediatorパターンの採用によって関連をキレイに整理できるという効果があります。説明だけでは、何のことだかわからないと思いますので、具体例をお見せしましょう。 図1[拡大表示](1)をご覧ください。これは、UML(Unified Modeling Language、ユーエムエル)と呼ばれる表記法で記述されたプログラムの設計図です。UMLでは、四角形の中に下線付きで名前を書いてオブジェクトを表し、関連のあるオブジェクトを矢印で結んで示します。ここで関連

    矢沢久雄の早わかりGoFデザインパターン(1) | 日経 xTECH(クロステック)
  • ヘッダファイルの依存を減らす

    [ C++で開発 ] ヘッダファイルの依存を減らす C++では、ヘッダファイルにクラスの実装詳細(非公開のメンバー他)を記述します。このヘッダファイルはクラスの利用者がインクルードして使用します。そのため、クラスの利用法(インタフェース)は全く変更がなくても、クラスを利用しているソースまでコンパイルし直す必要があります。また、クラスが内部的に利用しているライブラリがあったとしても、そのライブラリのヘッダファイルが間接的にクラスの利用者にインクルードされるため、コンパイル時に多大な結合が発生します。 アプリケーションを開発するときに、利用したライブラリが内部で利用している別なライブラリの環境までちゃんと用意しないとえらいことになります。どこかに変更があってもえらいことになります。まったくC++はどこかにちょっとでも変更があれば、すべてのソースを再ビルドせよ、ということに他なりません。 これで

  • Allergy Design Office COMプログラミング

    COM...正直言ってプログラミングではかかわらないほうが良い。それでも尚COMをやりたいと言うならば、このページが助けになる場面もあろう。何故なら、このページに書かれていることは私が実際にAnpsockやLHAコントロールを作成したときに大いに頭を悩ませた事ばかりだからである。 日語で書かれたCOMのドキュメントは数少ない。決して趣味でやろうなどと考えてはいけない。(私は趣味だが)文中の記述例およびサンプルは、すべてVB6またはVC6で書いてある。 記述例およびサンプルに含まれるファイルの全部、または一部を使用したことによる損害等について、一切の責任を負いません。 COM VARIANT [VC]SAFEARRAY BSTR [VC,ATL]VARIANTによる引数の省略 [VC,ATL]SAFEARRAYをVARIANTで受ける [VC,ATL]SAFEARRAYをVARIANTの

  • 文章化志向言語: VisualC++でのDLLの作成

    最近VisualStudioをいじってなかったので不安になって DLLの作り方を確認していました。 ということで自分用メモ。 具体的な記述方法はググればいくらでも出てくるので割愛。 DLL自体の作成と、DLLを使用するアプリケーションの作成について。 ①DLLの作成 VisualC++でDLLを作成するには MFCを使う、使わないで変わってくるが、ここではMFCを使わない方法。 DLL関数を記述する方式は二つで、 1. __declspec(dllexport)を使う   2. defファイルを作る 1は関数だけでなく、クラスもエクスポートしたいときに利用する。 DLLを更新してしまうとそのDLLを使用しているアプリケーションも再ビルドが 必要になる場合がある。 C++のアプリケーションで使用する場合の呼び出し規則に制限はないが、 VisualBasicやC言語のプログラムなどから呼

  • DLLについてあれこれ

  • http://www.crimson-systems.com/tips/index.html

  • DLLを作ろう!(関数編)

    今回はDLLを作ってみましょう! いきなり色々作るのも大変なんで、今回は関数をエクスポートしたDLLを作ってみましょう。 関数を作る意味 DLLに関数を作る意味は、なんでしょう? はっきり言って意味はないです。今度説明する「DLLにクラスを作る方法」を使えば、関数を入れるためにDLLを作る必要はなくなるでしょう。 ただ、もちろんクラスとは別に関数をAPIのような形で置きたいという場合もあるでしょう。MFCにもAfxなんたらというような形で、普通の関数があります。そういう関数を起きたい場合には、必要な方法と言えるでしょう。 プロジェクトの作製 まずはプロジェクトから。プロジェクトは「MFC AppWizard (DLL)」を選んでください。DLLは、別にMFCを使わなくても作れますが、たぶん使った方がずっと楽ですので、今回は使うことにします。 プロジェクト名を決めて「OK」ボタンを押したら、

  • 1