MFC Document-Viewアーキテクチャ Document-View アプリケーション起動時に新規ドキュメントを開かないようにする アプリケーション起動時に特定のファイルを開く ファイルオープン時にMDI子ウィンドウを最大表示する デフォルトのファイルオープン時に表示されるダイアログのファイルの種類を指定するには? 「xxxへの変更を保存しますか?」のダイアログについて Viewビューの背景色を変更する ビットマップを読み込んでビューに表示する Control ボタンコントロール ボタンにビットマップを貼り付ける List Control 選択されている項目のインデックスを取得する プログラムで特定行を選択状態にする レポート形式のリストコントロールへのデータ挿入 リッチエディットコントロールの 特定部分の文字の属性を変更する ブラウザコントロール 実行時に動的
はじめに 本記事では、DbgHelpを利用してDLLがエクスポートしている関数を表示するプログラムを作成し、DLLやEXEなどのPE形式のファイルから情報を得るための手法を示します。 対象読者 本記事の対象読者は、WindowsでC++を利用してツールを作成したり、プログラムの実行時障害の解析を行ったりする方です。 また、Windowsでバイナリを直接操作することに興味をお持ちのバイナリアンも対象です。 必要な環境 サンプルプログラムは、Visual Studio 2005のソリューションとして構成してあります。利用したプロジェクトテンプレートはWin32コンソールアプリケーションです。ビルドするには、Platform SDKをインストールしておく必要があります。 同様にPlatform SDKをインストールした環境であれば、Visual C++ 6やVisual Studio 2003で
無料のVC8(VS2005)用のプロファイラを見つけたので、ここに書いてみます。 ちなみにネイティブコードのC++(否C++.NET)も対応しています。 普段は可読性の高いコードを書いておきバグの混入を抑えつつ。ボトルネックの部分だけをこのようなツールで探し出し、そこのみをがちがちにカスタマイズしたコードに書き換えるのがいいと思います。 なお、書き変え前にユニットテストのコードを書いておいて、カスタマイズ(リファクタリング)しても動作を保証するのがとても望ましいを思います。 ツールのダウンロード まずはツールの取得です、下記URLより http://www.compuware.com/default.asp 以下の順で手繰って行って下さい。 Home → Solutions → Optimal → 「DevPartner Performance Analysis Community Edi
VC++ のライブラリにはメモリリークの検出機能があります。関数ひとつ呼んでおくだけでアプリケーション終了時にメモリの解放漏れを出力ウィンドウに表示してくれるという便利なものなのですが、実際にこれを使うまでの過程に罠が多いのでメモしておきます。長すぎて我ながらわけがわからないので、興味のある方は最後の参考サイトだけ読んだらいいと思います。 使い方 普通に使う分には簡単です。 stdafx.h の末尾*1に : #if _DEBUG #define _CRTDBG_MAP_ALLOC #include <crtdbg.h> #define new new(_NORMAL_BLOCK, __FILE__, __LINE__) #endif と記述し、main 関数 (MFC であれば CWinApp::InitInstanceとか) 内部で ::_CrtSetDbgFlag(_CRTDBG_L
MFCにおけるzlibの使い方 環境 Visual C++.NET 2003 ライブラリ MFC ライブラリ zlib 1.2.2 zlibという超有名なフリーの可逆圧縮ライブラリがあるのですが、今回はMFCアプリケーションにおけるこのライブラリの使い方について書いてみます。 このライブラリがサポートしている圧縮方式はDeflate/Inflate方式と言いまして、RFC1950に定義されています。この方式は実に様々なところで使われておりますが詳細は省略。さらにこのライブラリのライセンスはとても使いやすくなっていて、このライブラリは実に広く使われておりますが詳細は省略。 詳細は省略しておいてとにかくMFCアプリケーションでこのzlibを使いたいと思ったとします。 それでもってzlibをビルドし、作成されたスタティックライブラリ(zlib.lib)とMFCアプリケーションをリンクしてビルドし
DLLはアイテムを共有するためにあります。 そのアイテムは主に関数ですが、 基本的にほとんど全てのアイテムを共有できます。 関数、変数、クラス、リソースあたりですね。 このうちリソース以外のアイテムは、 プログラムから利用できるようにするためにエクスポートする必要があります。 エクスポートとは何ぞや?さぁ、分かりません。(ぉぃ 困ったときはMSDNに依存しときましょう。 DLL のレイアウトは .EXE とよく似ていますが、重要な相違点が 1 つあります。DLL ファイルには、エクスポート テーブルが含まれています。エクスポート テーブルには、DLL が別の実行形式に対してエクスポートする各関数の名前が含まれています。これらの関数は、DLL のエントリ ポイントです。エクスポート テーブルに記述されたエクスポート関数のみが、別の実行形式にアクセスできます。DLL 内のその他の関数は、その
UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. Windowsプログラミングからは切っても切り離せないのが、TCHARと、LPCTSTR、LPTSTRなどのTCHAR系列の型。結論から書くとこれはソースコードをユニコードと非ユニコード両対応にするための型だ(何のことだかサッパリ分からないって?こういうプログラミングの授業じゃ習わない意味不明な拡張が多いからWindowsプログラミングはややこしいんですよね)。 何も考えずに ・TCHAR = char ・LPCTSTR = const char* ・LPTSTR = char*
__stdcallは、WIN32 APIの呼び出し規約で、スタックの解放を呼ばれた側が行い(したがって、varargは使用不可)、__cdeclは、スタックの解放を呼ぶ側が行う(したがって、varargを使用可能)。 テストコード #include <stdio.h> int __stdcall scall(int a, int b) { printf("a=%d,b=%d\n", a, b); return a * b; } int __cdecl ccall(int a, int b) { printf("a=%d,b=%d\n", a, b); return a * b; } int main(int argc, char* argv[]) { scall(1, 2); ccall(1, 2); return 0; } アセンブラリスト __stdcall ?scall@@YGHHH
前のページ | 目次 | 次のページ 今回の内容 前回サブルーチンの呼び出しをやったので、今回はその応用として C の関数との連携をやります。この辺は処理系に依存するので、Windows の場合に限って話を進めます。 呼び出し規約 まず、C の呼び出し規約は3種類あります。VC++ の名前で言うと __cdecl, __stdcall, __fastcall です。VC++ では普段使われているのが __cdecl で、DLL などで使う WINAPI は __stdcall に define されています。__fastcall は普通使われていないようです。また、C++ のメンバ関数呼び出し用の規約として thiscall というのもあります。 まず、全ての規約の概略を説明しましょう。引数はスタックに push して渡します。32bit 以下の引数は全て 32bit に拡張されてスタック
このページについて このページは、VC++ の使い方を中心にまとめようと思っていましたが、管理者がいろいろな知識をメモ的に詰め込む用途にも使われ始めました。どこにでもある内容よりも、どこにもない情報をまとめてみたり、散らばっている情報を集積することを目的としています。 今のところの目玉コンテンツは VC++の使い方 GUIのプログラミング IEコンポーネント といったところです。 サイトマップ このサイトについて VC.NET関係の資料 VS .NET 60日間限定評価版を斬る ソリューションとプロジェクト チュートリアル VC++入門 デバッグ入門 リファレンス C/C++メモ ビルドエラー対処法 GUIリファレンス VC++ Tips エディタとVC++の大人な関係 CVSによるソース管理 IEコンポーネントの使い方 ウインドウ選択 インターフェース 時代はXML 軽い実行可能ファイル
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く