タグ

vc++に関するkastro-iyanのブックマーク (20)

  • C++11スマートポインタで避けるべき過ち Top10 | POSTD

    (注:2017/10/25、いただいたフィードバックを元に翻訳を修正いたしました。修正内容については、 こちら を参照ください。) 私は新しいC++11のスマートポインタをとても気に入っています。自分でメモリを管理するのが嫌だと感じる多くの仲間たちにとって、これはいろいろな面で天の助けでした。私の場合、このおかげで新人にC++を教えるのがずっと楽になりました。 しかし、C++11のスマートポインタを幅広く使っていた2年ちょっとの間で、使い方を誤ると、プログラムの効率が落ちたりクラッシュして壊れたりするという事態に何度も遭遇しました。参照用に、以下に例を載せました。 まずはこれらの”過ち”を、簡単なAircraftクラスを例に取って見てみましょう。 class Aircraft { private: string m_model; public: int m_flyCount; weak_p

    C++11スマートポインタで避けるべき過ち Top10 | POSTD
  • 64bit Windowsを前提とした32bitアプリケーション延命法 ~ LAAオプションで32bitアプリケーションのメモリ不足問題を解消 | OPTPiX Labs Blog

    64bit Windowsを前提とした32bitアプリケーション延命法 ~ LAAオプションで32bitアプリケーションのメモリ不足問題を解消 こんにちは。ウェブテクノロジの清水です。 Windowsアプリケーション開発者向けに、ちょっとしたTipsを紹介します。今回はVisual Studioの「LAAオプション」(LARGEADDRESSAWAREオプション、4GBオプション)という機能です。かなり便利な機能なのですが、知らない人も多いようです。 64bit化したくてもできない事情 オンメモリでデータを処理するタイプの32bitWindowsアプリケーションでは、メモリ不足が結構深刻な問題となることがあります。 アプリケーションを64bit化すれば解決すると分かっていても、動作対象OSを64bitWindowsのみに限定するのはユーザにとっても営業面から見ても抵抗がありそうです。

    64bit Windowsを前提とした32bitアプリケーション延命法 ~ LAAオプションで32bitアプリケーションのメモリ不足問題を解消 | OPTPiX Labs Blog
  • MFCの仕組みを詳しく調べてみる | JProgramer

    MFCのダイアログベースのアプリケーションを作成した際にできるファイルを詳しく調べてみます。 これにより、どのようにMFCが動作するかを理解できるようになります。 アプリケーションウィザードの設定 設定は、 ダイアログベース Unicodeライブラリを使用しない(使用するのチェックを外す) メインフレームのスタイルにおけるチェックをすべてはずす 高度な機能のチェックをすべてはずす とします。つまり最小の機能にします。ちなみにプロジェクト名は「sample」にしました。 作成されたファイル すると以下の様なファイルとフォルダが作成されます。 sample.sln sample.ncb sampleフォルダ 一つ目のsample.slnはソルーションファイルと呼ばれるファイルです。1つまたは複数のプロジェクトを管理する際にMFCが使用するファイルです。 2つものsample.ncbはシンボル管

  • 第 5 章 例外処理 (C++ プログラミングガイド)

    第 5 章 例外処理 章では、Sun C++ コンパイラに現在実装されている例外処理、および C++ 国際規格の規定について説明します。 例外処理に関する追加情報については、『注解 C++ リファレンス・マニュアル』(Margaret A. Ellis、Bjarne Stroustrup 共著、トッパン刊) を参照してください。 例外処理とは 例外とは、プログラムの通常の流れの中で発生し、プログラムの継続を阻止する変則性のことです。これらの変則性 (ユーザーエラー、論理エラーまたはシステムエラー) は、関数で検出できます。変則性を検出した関数がその変則性に対処できない場合は、例外を送出し、例外を処理する関数がそれを捕獲します。 C++ では、例外が送出されたときには、これを無視することはできません。つまり、何らかの通知をするか、プログラムを停止しなければなりません。ユーザーによって作成さ

  • WINVER, _WIN32_WINNT の設定値 - Qiita

    #define _WIN32_WINNT_NT4 0x0400 #define _WIN32_WINNT_WIN2K 0x0500 #define _WIN32_WINNT_WINXP 0x0501 #define _WIN32_WINNT_WS03 0x0502 #define _WIN32_WINNT_WIN6 0x0600 #define _WIN32_WINNT_VISTA 0x0600 #define _WIN32_WINNT_WS08 0x0600 #define _WIN32_WINNT_LONGHORN 0x0600 #define _WIN32_WINNT_WIN7 0x0601 #define _WIN32_WINNT_WIN8 0x0602 #define _WIN32_WINNT_WINBLUE 0x0603 #define _WIN32_WINNT_WINTHRE

    WINVER, _WIN32_WINNT の設定値 - Qiita
  • WTL/ATLのメッセージマップ実現のしくみ

    BEGIN_MSG_MAP(_EX) ~ END_MSG_MAPとそれに関連するマクロ群の単なる使い方を説明しても仕方ないわけで (そのような解説を期待していた人は別のサイトに飛んでください)、 その背後にあるしくみを私なりに紐解いてみようと思う。 この部分はウィンドウをC++クラスにしようと設計を考えた人なら少なからず悩んだ部分だろうから、 興味を引かれている人も多いだろう。ということで、挑戦してみた。 説明が間違っている可能性がないとは言えないので、 ご自分で裏をとって&見つけたら教えていただきたい。 以下の説明文はWTL/ATLによく見られる「テンプレートによる多態」 と私が呼んでいる(一般的にそう呼ばれているかどうかは知らない)テクニック class Derived : public Base<Derived> { ... }; についての理解を前提としている。わからない方はまずこ

  • @IT:.NET TIPS Windowsアプリケーションで[Enter]キーによるフォーカス移動を行うには?

    Windowsアプリケーションで[Enter]キーによるフォーカス移動を行うには?:.NET TIPS 連載目次 Windowsアプリケーションでは、[Tab]キーだけでなく[Enter]キーによるコントロール間のフォーカス移動処理を要求されることがよくある。一般ユーザーにとっては、普段あまり使わない[Tab]キーよりも[Enter]キーの方が押しやすく、利便性が向上するからである。 稿では、このような[Enter]キーでフォーカス移動する処理の実装方法を紹介する。 [Enter]キーによるコントロール間のフォーカス移動 といってもその実装は難しくはない。フォーム上の各コントロールについてKeyDownイベント・ハンドラを追加し、そのイベント・ハンドラ内で[Enter]キーが押されたときの処理として、次のいずれかのメソッドを呼び出せばよい。これらのメソッドはいずれも、別のコントロールにフ

    @IT:.NET TIPS Windowsアプリケーションで[Enter]キーによるフォーカス移動を行うには?
  • MSDN ホームページ

  • ピクチャーオブジェクト

    アプリケーションが描画するイメージには、ビットマップやアイコン、メタファイルなど様々な種類が存在しますが、 その種類に応じて描画に使用する関数が異なるのは煩わしいことです。 こうした種類の違いを抽象化し、どのような種類でも統一的な方法で描画できるようにするために、 OLEではIPictureと呼ばれるインターフェースが用意されています。 このインターフェースは1つのイメージを表しており、 それがどのようなイメージであっても、IPicture::Renderで描画することができます。 IPictureがどのようなイメージを表しているかを確認したい場合は、IPicture::get_Typeを呼び出すようにします。 アプリケーションがIPictureを取得するには、ファイルパスを指定してOleLoadPicturePathを呼び出すのが最も簡単です。 対象となるファイルは、既に述べたようにビッ

  • WTL 研究所

    WTL とは? WTL とは Microsoft によって公開された Windows 用のテンプレートライブラリです。Platform SDK を通して公開されていますが、情報はあまり多くありません。 ヘッダのみで構成され、高速で小さなコンポーネントを作成できます。 5/28 WTL の最新リリースへのリンクを更新 4/12 ブラウザ内に収まるようにタグを調整 1/6 速報編 WTL 7.5 Build 5002 についてを追加 1/2 WTL 7.5 Build 5002 リリース 8/3 WTL 第8回を追加 8/2 WTL 第7回を追加(間開きすぎ) 3/19 WTL 第6回を追加(お待たせしました!) 3/7 WTL 講座にポイントを追加しました。 1/4 WTL 第5回 Pane と Splitter を組み込むを追加 1/2 WTL 第4回 SDI アプリケーションの作成を

  • Google C++スタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • http://www.g-ishihara.com/mfc_st_01.htm

  • ATL COM Desktop Components

    The ATL Reference documents the Active Template Library (ATL), a set of template-based C++ classes that simplify the programming of Component Object Model (COM) objects. COM is a binary specification for creating and consuming software components on Windows. To fully take advantage of ATL, a working familiarity with COM is highly recommended. For more information about COM, see Component Object Mo

    ATL COM Desktop Components
  • ATL/WTLを利用したVisual C++のWindowsプログラミング一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    ATL/WTLを利用したVisual C++のWindowsプログラミング一覧
  • ChalkTalk CLR – COMのすべて

    日は「ChalkTalk CLR – COMのすべて」と題して、COM(Component Object Model)についてのディスカッションを行ってきました。 参加された方はCOM方面に強い方が半数近くいて(MVP4人、元MVP2人、中には現役で開発やってるという人も)、とにかくこれ以上ないぐらい強力なメンバーで、濃い議論が交わされました。多分、もうこういう企画は無いかな感全開 (;´Д`) 遠方からの参加もありがとうございます。 ChalkTalkバンジャーイ この記事では、内容を「要約」して記載します。図については内容を考えて起こしなおしました。 前回と同じく、Maker Lab NAGOYAさんのスペースをお借りしました。ありがとうございました。 事前の洗い出し まず、各参加者のCOMに対してのスキルセットを「バリバリ解説OK」~「COMって何」のレベルで、かつ自分がCOM

    ChalkTalk CLR – COMのすべて
  • ツリービュー [VC++の使い方]

    使い方 - 操作編 基的に、SendMessage ですべての操作を行えるのですが、ソースが読みにくくなるのでマクロが定義されています。ここでは、そのマクロを使った方法を紹介します。SendMessage を使ってやりたい人は、MSDN のマクロのヘルプを見て、対応するメッセージを送ってください。 ツリービューにはハンドルと言う概念があります。ハンドルは、ツリービューの特定のアイテムを表すための指標として導入されています。なぜハンドルが導入されているかですが、リストボックスなどだと 何番目の要素であるかを示せばアイテムを特定できますが、ツリービューではそうも行かないからです。 注意点をあげておきます commctrl.h をインクルードするのを忘れないでください。 comctrl32.lib をリンクするのを忘れないでください。 InitCommonControls(); をプログラムの

  • Dr. GUI、コンポーネント、COM、および ATL を使う

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 第 1 部 : 1998 年 2 月 2 日 第 2 部 : 1998 年 2 月 9 日 第 3 部 : 1998 年 2 月 23 日 第 4 部 : 1998 年 3 月 2 日 第 5 部 : 1998 年 3 月 30 日 第 6 部 : 1998 年 4 月 27 日 第 7 部 : 1998 年 5 月 29 日 第 8 部 : 1998 年 7 月 30 日 目次 第 1 部 : COM を取り上げるって?まだ取り上げていなかったの? 第 2 部 : COM の基礎知識 第 3 部 : オブジェクトおよびインターフェイスの取得 第 4 部 : オブジェクト クラスとオブジェクト ライブラリ 第

    Dr. GUI、コンポーネント、COM、および ATL を使う
  • VC プログラミング

    VC++ による Windows アプリケーションのプログラミングについて自分の覚え書き目的にまとめているページです. 使用ソフトはMicrosoft Visual C++ 6.0 ,MFCは使わずに,Win32API SDKを用いた方法を説明します. 機能をインデックスとした関数逆引き形式を目指しています. 内容のレベルはある程度PCに慣れてて,ある程度プログラムをかじったことある人程度向けだと思います. C言語ぐらいはできるよね? Section1. ウインドウを作る プログラムの骨格となる部分.ここから始まります. VCに自動で作らせる 自分で作る 細かい事 ウインドウ作成に使う関数や構造体の説明.ひたすら引数やメンバの説明. 書くのも読むのもめんどくさいので必要な時だけ読め. ウインドウプロシージャ(コールバック関数) 主なメッセージ一覧(ノーマルウインドウ編)つき Section

  • 私的 Win32 API メモ - IT戦記

    いろいろ勉強した 忘れてしまいそうなので書き下しておく 雰囲気的なこと ウィンドウ 俗にいうウィンドウではなく、 GUI の部品全般(ボタンとか、ツールバー)も含む 俗にいうウィンドウは、フレームとか言う ハンドル ポインタみたいなもん HWND ウィンドウのハンドル DOM でいうと Node みたいなもん LPXXX XXX のポインタって意味 owner と popup 「ポップアップさせたウィンドウ = owner」と「ポップアップしたウィンドウ = popup」 DOM でいうと owner は、 window.opener で popup は、 window.frames って感じ HINSTANCE DLL とか EXE とかひとつと対応してるハンドル アプリケーションの HINSTANCE というと実行されている EXE のハンドル DLL や EXE のメモリ上の位置 H

    私的 Win32 API メモ - IT戦記
  • VC++の使い方 [VC++の使い方]

    このページについて このページは、VC++ の使い方を中心にまとめようと思っていましたが、管理者がいろいろな知識をメモ的に詰め込む用途にも使われ始めました。どこにでもある内容よりも、どこにもない情報をまとめてみたり、散らばっている情報を集積することを目的としています。 今のところの目玉コンテンツは VC++の使い方 GUIのプログラミング IEコンポーネント といったところです。 サイトマップ このサイトについて VC.NET関係の資料 VS .NET 60日間限定評価版を斬る ソリューションとプロジェクト チュートリアル VC++入門 デバッグ入門 リファレンス C/C++メモ ビルドエラー対処法 GUIリファレンス VC++ Tips エディタとVC++の大人な関係 CVSによるソース管理 IEコンポーネントの使い方 ウインドウ選択 インターフェース 時代はXML 軽い実行可能ファイル

  • 1