directX9でdebugだと描画でき、Releaseだとできない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
gb

directX9でdebugだと描画でき、Releaseだとできない

#1

投稿記事 by gb » 5年前

初めまして774と申します。

タイトルの通り、directX9をvisual studio 2017にてdebugモードで実行すると、3Dの描画に成功し、
releaseモードで実行すると3Dの描画がされない不具合に悩まされております。

どのタイミングでこのような状態になってしまったか把握できておらず、原因がわかりません。。。

他に見られる状況として、
・エラーは一切でない
・なぜか2Dの描画はできる。
・windowを2つ表示しそれぞれに描画している。(1枚にしても症状は同じ)
・ifndefによるdebugとreleaseの場合わけによる処理は行なっていない。
・release時の出力にて「functions were compiled because no usable ipdb/iobj from previous compilation was found.」の表示が出る。

かれこれ2週間ほど悩んでいます。。。
最初から作り直した方が早いレベルなのですが、原因がわからないのが気に入らず粘っています。。。
どなたか助言いただけると助かります。
よろしくお願いいたします。

Math

Re: directX9でdebugだと描画でき、Releaseだとできない

#2

投稿記事 by Math » 5年前

これだけでは原因究明できません。
症状が再現する最低限のサンプルをzipファイル等で提示していただけないでしょうか。

gb

zipファイルを提示いたします。

#3

投稿記事 by gb » 5年前

返信いただきありがとうございます。
先ほどは774と名乗りましたが、以後gbと名乗らせていただきます。

お話いただいた通りzipファイルをGigaFile便[保存期間1週間]にて掲示いたします。
https://3.gigafile.nu/0218-m85d653db200 ... 722cd3ce09

コードが冗長で見にくくなっており大変申し訳ありません。
フォルダ内に簡単な概要を記述したreadme.txtファイルがあります。
プロジェクトの設定などは済ませているのでそのままビルドできるかと思います。

何かわかりにくい箇所があれば申し付けください。

申し訳ありませんが、ご助力いただけると幸いです。
よろしくお願いいたします。

Math

Re: directX9でdebugだと描画でき、Releaseだとできない

#4

投稿記事 by Math » 5年前

当方Windows10でVS2017Communityを使用しております。
VS2017CommunityをインストールしただけでDirectX12,11,9 が使えます。
(Windows10SDKで全てOK)

http://www2.koyoen.birdview.co.jp/~abcx ... -11-b-.PNG

そちらの環境は?
(こうなります)
http://www2.koyoen.birdview.co.jp/~abcx ... -11-a-.PNG

gb

DirectX SDK(June 2010)をインストールしています。

#5

投稿記事 by gb » 5年前

math様、返信いただきありがとうございます。
gbです。

私の環境は
OS:Windows10 Pro
PC:Surface Book2
VS:Visual Stdio 2017 Professional
SDK:DirectX SDK(June 2010)
です。

恐らく一番の要因は、DirectX SDKのインストールかと思います。
差し支えなければ、下記サイトにてSDKのインストールをお願いいたします。
https://www.microsoft.com/en-us/downloa ... px?id=6812

また、[Debug/Release]タブの横にある[x64/x86]タブをx64→x86で実行しています。
お使いの環境がx64の場合、プロジェクトの設定にて
インクルード/ライブラリディレクトリの設定を変更する必要があるかと思います。

また何かあればお申し付けください。
よろしくお願いいたします。

Math

Re: directX9でdebugだと描画でき、Releaseだとできない

#6

投稿記事 by Math » 5年前

インストール済みです。
viewtopic.php?f=3&t=20502
の#21に記したように Windows10 に VC++2008 を インストールしてDirectX 9 SDK(June) を設定して
テストしています。

http://www2.koyoen.birdview.co.jp/~abcx ... 11-8b-.PNG

http://www2.koyoen.birdview.co.jp/~abcx ... 11-8a-.PNG

ここrules 
にあるように
◾丸投げをする行為 は禁止されています。

検証できる 1ファイルくらいのテストコードを作ってください。

(Surfaceは 特殊なので Microsoft のforumに聞いたほうが速いと思いますが)

Math

Re: directX9でdebugだと描画でき、Releaseだとできない

#7

投稿記事 by Math » 5年前

ここには DirectX9 に詳しい方 プロの方 もおられるので その方の返信があるかもしれません。

Math

Re: directX9でdebugだと描画でき、Releaseだとできない

#8

投稿記事 by Math » 5年前

>私の環境は
>OS:Windows10 Pro
>PC:Surface Book2
> VS:Visual Stdio 2017 Professional

だったら 逆に SDK:DirectX SDK(June 2010) いらないはずでは?
何故 いれたのでしょうか。。

Math

Re: directX9でdebugだと描画でき、Releaseだとできない

#9

投稿記事 by Math » 5年前

>、[Debug/Release]タブの横にある[x64/x86]タブをx64→x86で実行しています

x64の方が安定するのではないですか。

gb

Re: directX9でdebugだと描画でき、Releaseだとできない

#10

投稿記事 by gb » 5年前

Math様、ご返信ありがとうございます。

>丸投げをする行為 は禁止されています。
検証できる 1ファイルくらいのテストコードを作ってください。

同じ状況を再現するのに多少削ったつもりでした。
正直どこに原因があるのかわからなかったので、どのようにファイルをまとめるのがいいのかわかりませんでした。
丸投げしようという意識ではありませんでしたし、提示したファイルも多少削った後の状態でした。
ルールを理解せずに質問してしまい申し訳ありません。さらに削った方が良いでしょうか?

>だったら 逆に SDK:DirectX SDK(June 2010) いらないはずでは?
何故 いれたのでしょうか。。

私が無知であったため、SDKなしで実行できることを知りませんでした。
どのようにしたら、できるのでしょうか?
ない場合の方がよいのでしょうか?

>x64の方が安定するのではないですか。

これについても、私が無知であったため、知りませんでした。
x64とx86での差も理解しておりませんでしたので、ご教授いただけると幸いです。

現在私は学生で、学校で教わったことと、独学で学んだことの組合せで開発を行っております。
ですので、コードもプロジェクトの作成も素人に毛が生えたレベルですので、
もし、こちらの方が良いのではということがあれば教えていただけると嬉しいです。

質問ばかりで、大変申し訳ありませんが、よろしくお願いいたします。

Math

Re: directX9でdebugだと描画でき、Releaseだとできない

#11

投稿記事 by Math » 5年前

了解いたしました。(^^;

>私が無知であったため、SDKなしで実行できることを知りませんでした。

#4 を よーく お読みください。

>VS2017CommunityをインストールしただけでDirectX12,11,9 が使えます。
>(Windows10SDKで全てOK)

なを ここに詳しい説明とサンプル・コードがあります。ダウンロードしてためせます。

http://zerogram.info/?p=1832


>x64とx86

32bit版のCPU:x86
64bit版のCPU:x64
を基本として、それ以外にも、32bit版の○○は「x86系」、64bit版の○○「x64系」といった表現がされることが多い。
例えば、Windowsにも32bit版と64bit版があります。
32bit版のWindowsは、32bit版のCPUで動かすことを想定して作られたWindowsです。
64bit版のWindowsは、64bit版のCPUで動かすことを想定して作られたWindowsです。

いまはほとんど 64bit版のCPU:x64 なので

わざわざ メモリーの使える量がすくない 32bit版のCPU:x86 をターゲットに
プログラムする必要がありません。

( 私はSurface を触ったことがありませんが 特殊性の例を見かけるのでマイクロソフトのMSDNに
問い合わせて見るといいですよ)

Math

Re: directX9でdebugだと描画でき、Releaseだとできない

#12

投稿記事 by Math » 5年前

>なを ここに詳しい説明とサンプル・コードがあります。ダウンロードしてためせます。

多分 ソリューションの再ターゲットをやる必要があります。
( ソリューションの上で右クリックするとでるメニューにあります。)


返信

“C言語何でも質問掲示板” へ戻る