「C言語/C++/wtlhello」の編集履歴(バックアップ)一覧はこちら

C言語/C++/wtlhello - (2012/09/21 (金) 16:33:48) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

|開発環境|Microsoft Visual C++ 2010 Express (SP1)| |実行環境|Microsoft Windows XP Home Edition (SP3)| |プロジェクトの種類|Win32 プロジェクト| |プロジェクト名|wtlhello| |アプリケーションの種類|Windows アプリケーション| |追加のオプション|空のプロジェクト| 以下のATL/WTLを使用。 -Windows Driver Kit Version 7.1.0 -WTL 8.1.12085 参考 -[[Windows Template Library - Wikipedia>http://ja.wikipedia.org/wiki/Windows_Template_Library]] -[[Visual C++ 2010 Express の導入 【Part.6】>http://programmemopad.blog.fc2.com/blog-entry-29.html]] wtlhello.cpp #highlight(cpp){{ /* ATL/WTLディレクトリの追加 構成プロパティ/VC++ ディレクトリ ・インクルード ディレクトリ:C:\etc\wtl81_12085\Include;C:\WinDDK\7600.16385.1\inc\atl71 ・ライブラリ ディレクトリ:C:\WinDDK\7600.16385.1\lib\ATL\i386 構成プロパティ/リンカー/コマンド ライン ・追加オプション:/ignore:4078,4254 */ #pragma comment(lib, "atlthunk.lib") #include <Windows.h> // ATLヘッダ #define _ATL_NO_AUTOMATIC_NAMESPACE #include <atlbase.h> #include <atlwin.h> // WTLヘッダ #define _WTL_NO_AUTOMATIC_NAMESPACE #include <atlapp.h> #include <atlcrack.h> class HelloWindow : public ATL::CWindowImpl<HelloWindow> { public: // ウィンドウクラス名を登録 DECLARE_WND_CLASS(TEXT("HelloWindow")); private: // メッセージマップ BEGIN_MSG_MAP(HelloWindow) MSG_WM_PAINT(OnPaint) MSG_WM_DESTROY(OnDestroy) END_MSG_MAP() // 描画メッセージ void OnPaint(HDC) { WTL::CPaintDC dc(m_hWnd); dc.TextOut(10, 10, TEXT("Hello, world"), -1); } // ウィンドウが破棄されるメッセージ void OnDestroy() { PostQuitMessage(0); } }; int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int nCmdShow) { // ウィンドウのインスタンスを生成 HelloWindow wnd; HWND hWnd = wnd.Create(NULL, ATL::CWindow::rcDefault, TEXT("Hello, world"), WS_OVERLAPPEDWINDOW); if (!hWnd) { return -1; } // ウィンドウ表示 wnd.ShowWindow(nCmdShow); wnd.UpdateWindow(); // メッセージループ WTL::CMessageLoop msgLoop; return msgLoop.Run(); } }}
|開発環境|Microsoft Visual C++ 2010 Express (SP1)| |実行環境|Microsoft Windows XP Home Edition (SP3)| |プロジェクトの種類|Win32 プロジェクト| |プロジェクト名|wtlhello| |アプリケーションの種類|Windows アプリケーション| |追加のオプション|空のプロジェクト| 以下のATL/WTLを使用。 -Windows Driver Kit Version 7.1.0 -WTL 8.1.12085 リンカーのwarningの意味は「異なる属性の複数のセクションがマージされている」という事らしい。 リンカーオプションの/verboseや/mapを指定して調べてみたがよく分からない。 とりあえずwarningを抑止する事にした。 参考 -[[Windows Template Library - Wikipedia>http://ja.wikipedia.org/wiki/Windows_Template_Library]] -[[Visual C++ 2010 Express の導入 【Part.6】>http://programmemopad.blog.fc2.com/blog-entry-29.html]] wtlhello.cpp #highlight(cpp){{ /* ATL/WTLディレクトリの追加 構成プロパティ/VC++ ディレクトリ ・インクルード ディレクトリ:C:\etc\wtl81_12085\Include;C:\WinDDK\7600.16385.1\inc\atl71 ・ライブラリ ディレクトリ:C:\WinDDK\7600.16385.1\lib\ATL\i386 構成プロパティ/リンカー/コマンド ライン ・追加オプション:/ignore:4078,4254 */ #pragma comment(lib, "atlthunk.lib") #include <Windows.h> // ATLヘッダ #define _ATL_NO_AUTOMATIC_NAMESPACE #include <atlbase.h> #include <atlwin.h> // WTLヘッダ #define _WTL_NO_AUTOMATIC_NAMESPACE #include <atlapp.h> #include <atlcrack.h> class HelloWindow : public ATL::CWindowImpl<HelloWindow> { public: // ウィンドウクラス名を登録 DECLARE_WND_CLASS(TEXT("HelloWindow")); private: // メッセージマップ BEGIN_MSG_MAP(HelloWindow) MSG_WM_PAINT(OnPaint) MSG_WM_DESTROY(OnDestroy) END_MSG_MAP() // 描画メッセージ void OnPaint(HDC) { WTL::CPaintDC dc(m_hWnd); dc.TextOut(10, 10, TEXT("Hello, world"), -1); } // ウィンドウが破棄されるメッセージ void OnDestroy() { PostQuitMessage(0); } }; int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int nCmdShow) { // ウィンドウのインスタンスを生成 HelloWindow wnd; HWND hWnd = wnd.Create(NULL, ATL::CWindow::rcDefault, TEXT("Hello, world"), WS_OVERLAPPEDWINDOW); if (!hWnd) { return -1; } // ウィンドウ表示 wnd.ShowWindow(nCmdShow); wnd.UpdateWindow(); // メッセージループ WTL::CMessageLoop msgLoop; return msgLoop.Run(); } }}

表示オプション

横に並べて表示:
変化行の前後のみ表示: