locked
Win7+ワイドディスプレイ+色設定をTruecolor(32bit)でCreateDIBSection()が失敗する RRS feed

  • 質問

  • はじめまして。

    Windows XP+Visal Stadio 2005で作成したプログラムにて
    CreateDIBSection()を使用していました。

    このプログラムを
    Windows 7+Visal Stadio 2005でビルドし、
    スクエアなディスプレイ(解像度1280×1024)で動かすと
    CreateDIBSection()は成功するのですが、
    ワイドディスプレイ(解像度1680×1050)で動かすと
    CreateDIBSection()が失敗してしまいます。
    GetLastError()で失敗理由を調査したところ
    8:ERROR_NOT_ENOUGH_MEMORYでした。

    ちなみに
    Windows 7のディスプレイのプロパティで
    色設定をTruecolor(32bit)からHighcolor(16bit)に変更すると
    CreateDIBSection()は正常動作します。

    或いはTruecolor(32bit)でもWindowsのテーマをクラシックに
    変更してもCreateDIBSection()は正常動作します。

    Windows 7+ワイドディスプレイ+ディスプレイ色設定(32bit)で
    CreateDIBSection()が失敗する原因はVRAMの空き不足でしょうか?
    それともメインメモリで連続したメモリ領域が確保できないためでしょうか?

    マシンスペックはメモリ4G(実質利用可能は2GB)、
    グラフィックメモリは1551MBです。

    2014年8月12日 15:17

回答

  • ShiroYuki_Mot様、佐伯様

    ご指摘ありがとうございました。

    本件、MSDN フォーラムに移動することにします。

    ちなみに

    >CreateDIBSection() の iUsage は DIB_RGB_COLORS でしょうか。
    >DIB_PAL_COLORS では 論理パレットに関係する 16 ビットのインデックス番号です とあります。

    CreateDIBSection() の iUsage は DIB_RGB_COLORSを指定しています。

    (移動先ではその旨も明記し、再投稿いたします)

    宜しくお願いします。

    • 回答としてマーク 長峰 2014年8月13日 6:53
    2014年8月13日 6:53

すべての返信

  • オペレーター さま 若しくは モデレーター さまへ。

    windows 7 フォーラムへのご投稿ですが、
    内容的に、Visual Studio Develpment フォーラムの方が回答が着き易いと思います。
    移動なされる事をお勧めします。
    コードが明示されていませんが、VC++ 辺りが適切ではないでしょうか。

     

    長峰 さま よろしく。

    CreateDIBSection() の iUsage は DIB_RGB_COLORS でしょうか。
    DIB_PAL_COLORS では 論理パレットに関係する 16 ビットのインデックス番号です とあります。

    CreateDIBSection
    http://msdn.microsoft.com/ja-jp/library/cc428334.aspx

    この辺りは関係ないでしょうか。 

    2014年8月13日 1:56
  • こんにちは、長峰さん
    フォーラムオペレータの佐伯 玲 です。

    ShiroYuki_Motさんからのご指摘にある通りWindows 7のフォーラムよりMSDN フォーラムの各言語のフォーラムのほうが情報が集まりやすいかと思います。
    特にこちらのTechNet フォーラムは管理者向けですので開発者向けのMSDN フォーラムいのほうがあっているかと思います。

    ご利用されている言語をご記載いただければ該当するフォーラムへ私のほうから移動させて頂きたいと思うのですがいかがでしょうか?

    またご参考になる情報が寄せられた際には「回答としてマーク」して頂きますようお願い致しますね。

    ShiroYuki_Motさん、ご指摘ありがとうございました。

    宜しくお願い致します。


    TechNet Community Support 佐伯 玲

    2014年8月13日 4:18
  • ShiroYuki_Mot様、佐伯様

    ご指摘ありがとうございました。

    本件、MSDN フォーラムに移動することにします。

    ちなみに

    >CreateDIBSection() の iUsage は DIB_RGB_COLORS でしょうか。
    >DIB_PAL_COLORS では 論理パレットに関係する 16 ビットのインデックス番号です とあります。

    CreateDIBSection() の iUsage は DIB_RGB_COLORSを指定しています。

    (移動先ではその旨も明記し、再投稿いたします)

    宜しくお願いします。

    • 回答としてマーク 長峰 2014年8月13日 6:53
    2014年8月13日 6:53