タグ

programmingとwindowsに関するneumannのブックマーク (47)

  • Windows 8のC++でプログラミングの常識がひっくり返った

    「C言語とC++がわかる」というムック(2013年4月2日発売)の作業で、Windows 8/RTで動く「Windowsストア アプリ」をC++で作った。元記事はVisual BasicとC#(シーシャープ)で作っていたので、それをC++で書き直すというわけだ。 これが想像をはるかに超えて難しく、土日に働き続けるのはもちろんのこと、1日の睡眠時間を2時間に削ったりして長時間取り組んでも、思うように進まなかった。印刷会社にデータを渡す日は近付くしプログラムは動かないしで、10年に1度クラスの大ピンチ。冷や汗をかき、涙目になりながら書き続けて何とか間に合わせたのだが、どこが最大の難所だったかというと、「順次処理を書いたつもりなのに順次処理してくれない」という、常識破りの大変化があったことだと思う。 手続き型のプログラミング言語でプログラムを書く場合、プログラマが と記述したら、コンピュータは

    Windows 8のC++でプログラミングの常識がひっくり返った
    neumann
    neumann 2013/04/04
    Windows 8/RT用のWindowsストア アプリのプログラムは、上の行の完了を待たずに非同期に次の行を実行し、かっ飛んでいってしまうのだ。
  • Window Contents Capturing using WM_PRINT Message

    Window Contents Capturing using WM_PRINT Message Copyright (c) 2000 by Feng Yuan (author of Windows Graphics Programming: Win32 GDI and DirectDraw, www.fengyuan.com). All rights reserved. Version 1.00: November 4, 2000 Version 1.01: November 6, 2000 (add Within_WM_PRINT method) Version 1.02: December 1, 2000 (add sample program link) Version 1.03: April 12, 2004 (add DLL injection to capture windo

  • 標準 Windows API - WisdomSoft

    サンプルソースは C 言語としてコンパイルしてください。 C++ としてコンパイルした場合、エラーが発生する場合があります ※誤ったプログラムを実行すると、Windowsが不安定になることもあります 重要なシステム上では実験を行わないで下さい この講座は、C言語を熟知していることが前提です

  • 〔家庭教師〕 Tips集−ファイル・プロパティ−概要情報の設定と取得

    何かを思う なにもしないままに時が過ぎ、あるときふと思う。 「その間、私は何をしていたんだろうか」と。 今、ベストな状況を作るためには、あの時どうすれば良かったのだろう? (今がベストな状況なので)あえて行動を起こさなくてよかったのか、それとも 行動してチャレンジすべきだったのか。 ファイル・プロパティ−概要情報の設定と取得 VS2005 C# マイコンピュータでファイルのプロパティを選択すると、プロパティ・ダイアログが表示されます。そこには「概要」タブがあり、タイトル、表題、作成者、カテゴリ、キーワード、コメントなどの属性を設定し、参照する機能があります。 これらの機能を、C#やVBから使用(アクセス)する場合、Win APIを呼び出すのではなく、Microsoft オフィスチームから提供されているDsofile.dllを使用すると簡単にアクセスすることができるよう

  • MEMO

    プラグインのサイズを小さくする * 部分的に、VC前提で書いてるところもあります。 Susieプラグインは*.spiという拡張子がになってますが、中身はただのDLLに過ぎません。 で、このDLLというやつをVC++で普通に作成してみると、何故かやたらとサイズが大きくなってしまうのです。 何もしないようなDLLをつくっても、40KB超のファイルができてしまいます。 HDDの容量が100GBを越えるのが普通の時代になったとはいえ、無意味にファイルサイズが大きくなるのは、何か納得いかないものがあります。 エントリポイント MSDNで調べてみると、ファイルサイズが大きくなるのは、Cランタイムライブラリのスタートアップコードというのが原因らしいです。 ようは、C/C++のライブラリの初期化に必要なものらしいんですが、Susieプラグインをつくるくらいなら、 Cライブラリなしでも書けないこと

  • 電子工作のためのWindowsプログラミングメモ(仮)

    by K.I Index 概要 QuickDrawとSDK リソースについて 何故SDKを使うのか 電子工作に必要な機能 プログラム環境 とりあえずVC++ 斬新すぎるインターフェース ライブラリの追加は? 古い形式 'LPCWSTR'に変換できません TEXTについて(追記) 漢字の扱い charとWCHARとTCHAR 文字列定数 _tWinMain DLLの場合 結局は Windowシステム Updateイベント システムが発生させるUpdateイベント アプリケーションが発生させるUpdateイベント オフスクリーン・テクニック アクティベートイベント そういうことで Windowsプログラムの基構造 WinMain InitInstance WndProc プロジェクトの構成 メッセージについて WM_CREATE WM_PAINT WM_ACTIVATE WM_TIMER W

  • ATL/WTL C++ Windowsプログラミングの紹介 | 不定期ソフトウェア開発

    ATL/WTL C++ Windowsプログラミングの紹介 C++を使ったWindowsプログラミングといえば,MFCを使ったものが標準ですが,DLLとかが必要だったり,プログラムサイズが大きくなったり,使用するメモリ量が多いので,軽量な配布しやすいプログラムを作成しにくい。 ATLは,COMプログラミングのために用意されたテンプレートクラスライブラリ。 (COMとは・・・下記参照) Visual C++標準のATLではウインドウアプリケーションを作成できない。しかし,WTLというのをダウンロードしてVisual C++に入れてやると,ATLにウインドウアプリケーションの作成部分の機能が追加される。 C++を使って軽量なWindowアプリケーションを作れる様になる。 Win32APIをC言語で書くよりもコードが少なく,C++のオブジェクト指向でプログラムが作成できる上に,プログラムサイズも

    ATL/WTL C++ Windowsプログラミングの紹介 | 不定期ソフトウェア開発
    neumann
    neumann 2008/05/20
    ATLは,COMプログラミングのために用意されたテンプレートクラスLibrary。VC++標準のATLではWindow Applicationを作成できない。しかし,WTLをDownloadしてVisual C++に入れてやると,ATLにWindow Applicationの作成部分の機能が追加される。
  • ダイアログ

    ダイアログボックスを作る ユーザーに何らかの小さな情報を提示したり またはいくつかのオプションなどの設定を行わせる場合 専用のウィンドウを作るのは大げさであるが、メニューでは事足りぬことがあります 一般に、このような処理にはダイアログボックスが用いられます ダイアログボックスは、これまでの様にリソーススクリプトで作成することができます しかし、メニューやアイコンのように単純ではありません とはいえ難しく考える必要もなく、それだけ機能が豊富であると前向きに考えてください ダイアログを作るには、リソーススクリプトの DIALOG 文を使います 基的な書式はこれまでと同じです nameID DIALOG x, y, width, height [optional-statements] { control-statement . . . } nameID には、ダイアログの識別子を指定します

  • クリッピング

  • http://m--takahashi.com/bbs/pastlog/12900/12802.html

  • The Deep Inside of Windows - Lesson 1.超高速描画の謎【前編】

    The deep inside of Windows 〜 Windowsの深淵 Lesson 1.超高速描画の謎【前編】  '01/10/04 走り書きですんません、、時間無いのです。きちんとデータをとりなおして、書き直したいのですが、その時間も無いので、もうこのまま載せちゃいます。読みにくくってごめんなさい。 通常のゲームにおいては、描画処理が、処理全体の80%以上を占めると言っても過言ではありません。そのわりには、Windowsで、どうやれば高速な描画ができるのか、実際に比較して示してある書籍が皆無です。私も断片的に、rsp(スーパープログラマへの道)で書きましたが、測定値を示すには至っていなかったのです。だから、同業者のしとたちから、詳しく書け書けとうるさく催促されています^^; しかし、実は、いま、ここで詳しいことを書いているほど時間は無いのです。私は、某麻雀ソフトで、DIB描画の

  • VC++でGDI+ そにょ6 〜画像の描画2:中心回転〜 - yuyarinの日記

    中心回転 ゲームなどのスプライトは中心座標が指定されているのが普通である。では、画像の中心を回転中心とした回転関数を書いてみよう。前回紹介した変形描画メソッドを使う。 DrawImage(Image *srcImage, const Point *dstPoints, INT count); DrawImage(Image *srcImage, const PointF *dstPoints, INT count); 描画する中心座標を(cx, cy)とする。これを中心に時計回りにangle度回転させる。srcからの切り取りなどは各自実装して頂きたい。 #include math.h Status DrawRotateImage(Graphics *graphics, Image *srcImage, INT cx, INT cy, REAL angle) { UINT w = srcIm

    VC++でGDI+ そにょ6 〜画像の描画2:中心回転〜 - yuyarinの日記
    neumann
    neumann 2008/05/19
    gdi+ SetTransform RotateFlip
  • Pasture | 2005/10/28

    GDI+ はとても強力な描画命令を持っていて便利だけども、使ってみるとかなり遅い。 かなり単純な図形しか描画しなくても遅い。ということで、描画自体の速度はともかく、描画したGDI+のオフスクリーンサーフェスから、ウインドウへの転送速度が足を引っ張っていそうだ。 webで探してみてもやはりオフスクリーンサーフェスからの転送速度が遅いということを書いてあるページがいくつか見つかった。(このへんとか) ということで、自分でもいろいろ調査してみた。 まずは一番シンプルで一般的と思われるコードは以下であり、これが遅い。 // オフスクリーンサーフェスの生成 Gdiplus::Bitmap bitmap(rect.Width(), rect.Height(), PixelFormat24bppRGB); // オフスクリーンサーフェスに Graphicsクラスを使って描画 Gdiplus::Graph

    neumann
    neumann 2008/05/18
    GDI+ 画像表示速度 高速化 詳しく調査されていて感動した。 ベンチマークしてみる。
  • VC++でGDI+ そにょ8 〜ダブルバッファリング〜 - yuyarinの日記

    ダブルバッファの手順とサンプル デバイスコンテキストから生成したGraphicsオブジェクトに描画している場合、ウィンドウを動かしたりすると画面がちらつく。これは描画の処理が追いついていないために、一度消して真っ白になった背景が見えてしまうからである。こうしたちらつきを防ぐのがダブルバッファリング(double buffering)である。画面表示に限らず、音声再生など色々な場所で用いられる技術である。これをGDI+もで実装する*1。 手順は以下のとおり クライアント領域と同じサイズのBitmapオブジェクト"offScreenBitmap"を用意する。 "offScreenBitmap"からGraphicsオブジェクト"offScreen"を作成する。 "offScreen"に対して描画を行う。 デバイスコンテキストハンドルからGraphicsオブジェクト"onScreen"を作成する。

    VC++でGDI+ そにょ8 〜ダブルバッファリング〜 - yuyarinの日記
    neumann
    neumann 2008/05/18
    gdi+ ダブルバッファリング
  • ダブルバッファリング

    neumann
    neumann 2008/05/17
    ダブルバッファリング
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    neumann
    neumann 2008/05/17
    再描画
  • http://www-online.kek.jp/~keibun/win32prog/paint.html

    neumann
    neumann 2008/05/17
    再描画
  • 描画・色

    GetStockObject(INT fnobject)等で使います GetStockObject(WHITE_BRUSH); BLACK_BRUSH:Black brush. WHITE_BRUSH:White brush DKGRAY_BRUSH:Dark gray brush. GRAY_BRUSH:Gray brush.. LTGRAY_BRUSH:Light gray brush. HOLLOW_BRUSH:Hollow brush (equivalent to NULL_BRUSH) NULL_BRUSH:Null brush (equivalent to HOLLOW_BRUSH) DC_BRUSH:Windows 98, Windows NT 5.0 and later: Solid color brush. The defa

  • スタティックテキストの文字色 - ab.com コミュニティ

    スタティックテキストの文字色 質問やその返信やヘルプや検索や、、、色々見ましたが、どうにも、、、 はずかしいのですが、怒らずに教えてくださいまし。 以下は、新規で pj を作って、Static1 を1つ貼り付けただけの状態です。 標準の黒文字 Text1 を、例えば、赤に変えるために必要な最低限の追加コードを教えていただけると助かります。その後のイタズラはまた自分で調べてみます。 EXE呼出し直後やイベントで変えるのではなく、できれば MainWnd.sbp の1つの sub(またはFunction)内で変えたいのですが。。。 test7.wnd ---------------------------------------- WINDOW:MainWnd HANDLE = hMainWnd POINT = -2147483648,-2147483648 SIZE = 480,360 CA

    neumann
    neumann 2008/05/15
    STATIC WM_CTLCOLORSTATIC GetSysColorBrush スタティックの色変更
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    neumann
    neumann 2008/05/15
    createwindow static wm_command hmenu