ページ 11

DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 00:05
by emanon
DxLibを使いゲームを使いたいのですが、ウィンドウの端に青の四角形を表示するプログラムを実行しても黒い画面しか表示されません。

よく見ると、「画面の配色は変更されました」という注意が下のほうに出ており、その詳細には
"実行中のプログラムが、Aero テーマと互換性がない。 この状態が発生した場合は、一部の視覚要素が自動的にオフになります。 そのプログラムの実行を終了すると、オフになっていた視覚要素は自動的に再度オンになります。"
というように説明がなされていました。

どのような設定をすれば意図通りウィンドウに表示させることができるのでしょうか。
環境は、
OS:Win7
Compiler:Borland C++ 5.5
です。

DxLibの使用は初めてで、C言語についてもそれほど深い理解はしていません。

回答よろしくおねがいします。

以下コード。

コード:

#include"DxLib.h"

int WINAPI WinMain(HINSTANCE hI,HINSTANCE hP,LPSTR lpC,int nC)
{
	ChangeWindowMode(TRUE);
	if(DxLib_Init() == (-1)) return -1;
	DrawBox(0,0,120,120,65535,TRUE);
	
	WaitKey();
	DxLib_End();
	return 0;

}

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 00:10
by emanon
×ゲームを使いたい
○ゲームを作りたい
です。

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 00:26
by h2so5
そのメッセージは黒い画面しか表示されないことと関係ないと思います。
ところで、DrawBoxの引数にある65535は何の数値ですか?

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 00:31
by softya(ソフト屋)
マルチポストされていませんか?
「gun**ave*777さんの質問一覧 - Yahoo!知恵袋」
http://my.chiebukuro.yahoo.co.jp/my/mys ... n_raver777
ここのフォーラムルールなのですが、マルチポスト時は相互リンクをお願いしております。 http://dixq.net/board/board.html
相互リンク:お互いにリンクを張り別の掲示板で質問していることを明確にすること。回答者のための措置です。
よろしくお願いします。

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 00:54
by emanon
返信ありがとうございます。
>softya(ソフト屋) 様
この掲示板内でのマルチポストのみリンクが必要なのだと勘違いしていました。フォーラムルールに反してしまい申し訳ありません。
http://detail.chiebukuro.yahoo.co.jp/qa ... 1491733529
でも同様の質問をしています。

> h2so5 様
それは青色を表す値です。"14歳からはじめるC言語わくわくゲームプログラミング教室Visual Studio 2008編―Windows XP/Vista対応" に掲載されているサンプルコードを参考にしています。

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 01:15
by h2so5
「14歳からはじめるC言語わくわくゲームプログラミング教室」のコードがどうなっているのかは知りませんが、
先ほど試したところGetColor(0,0,255)の戻り値は 4278190335 でした。

Draw系関数に指定する色コードは環境によって変わるので、決め打ちせずにGetColorを使用してください。

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 01:39
by emanon
返信ありがとうございます。
>h2so5 様
GetColor(0,0,255)で決め打ちしても同様の結果でした。あと、先ほどの値は正確には水色でした。すみません。

画像

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 01:47
by emanon
ちなみにウィンドウを閉じると下の画像のように、青の四角形が写ります。
この青はPrntScrしても写り込まないので、デジカメで撮影しました。
画像

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 01:55
by emanon
×GetColor(0,0,255)で決め打ちしても
○GetColor(0,0,255)を使用しても

何度も細かい間違い、すみません。

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 08:15
by 雨ガエル
僕の環境で試したら、ちゃんと青い四角が描画できましたよ。
プロジェクトの設定からやり直してみたらどうですか?

プロジェクト設定済みのサンプルを作りました。
ビルドすればちゃんと動くと思います。
http://www1.axfc.net/uploader/Li/so/134017

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 09:54
by softya(ソフト屋)
申し訳ないのですが知恵袋側からリンクされていないので相互リンクとはいえません。
補足を使っての相互リンクをお願いします。

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 11:31
by naohiro19
DrawBoxは右下の座標が-1なので正しくは

コード:

DrawBox(0,0, 119, 119, GetColor(0, 0, 255), TRUE);
です。

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 11:35
by softya(ソフト屋)
naohiro19 さんが書きました:DrawBoxは右下の座標が-1なので正しくは

コード:

DrawBox(0,0, 119, 119, GetColor(0, 0, 255), TRUE);
です。
120x120pixelのBOXを描くなら下記で合っています。
DrawBox(0,0, 120, 120, GetColor(0, 0, 255), TRUE);
参考↓ リファレンス
http://homepage2.nifty.com/natupaji/DxL ... .html#R2N2

DrawBox(0,0, 119, 119, GetColor(0, 0, 255), TRUE);
ですと119x119pixelのBOXが描画されますよ。

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 12:38
by emanon
返信ありがとうございます。
>h2so5 様
何度もすみません。遅ればせながら知恵袋の方からもリンクいたしました。

>雨がえる 様
プロジェクトの設定はすべて、"14歳からの..."に準拠しています。コンパイルエラーなどは出ていない上にウィンドウを閉じた後に青が表示されているのでプロジェクト設定ミスではないと思うのですが...。サンプルはあとで実行してみます。手際が悪い上時間がないので。あと"僕の環境"とはどういった環境なのでしょうか?

Re: DxLib、Aeroテーマとの互換性がない

Posted: 2012年8月05日(日) 12:49
by softya(ソフト屋)
カラーコードはGPUやグラフィックドライバに依存しますので、65535の値では思ったようにカラー表示できないかも知れません。
こういうのを環境依存といいます。 【補正】その他にも特定のPC環境でしか動かないものも環境依存です。
つまり、水色が特定のPCでは65535でも違うPCでは値が全く別かもしれないのです。
そのために、GetColor()関数があります。DXライブラリが起動時にGPUを調べて最適なカラーコードの求め方を決定していますので常にコレを使ってください。