トップページ > 記事閲覧
DxLibMake3_22aに付いて
名前:昭和ロートル 日時: 2020/12/06 16:29

初めまして。 今まで何でかスルーしていましたが、本ライブラリを知りました。 概要だけでも相当な機能が盛り込まれているようで、興味津々でいろいろ触ってみようと思います。 今のところWindows10 + VisualStudio2019 で使ってます。 簡単なテストプログラムでの確認では、配布パッケージでは、DxLib内部の挙動が分からないようなので、 掲題のソースをダウンロードしてライブラリを自作し、テストプログラムとリンクさせたところ 妙なリンクエラーでえらーになりました。 どうやら、DxDataTypeWin.hの中にライブラリ名を強制指定しているのが原因のようですね。 プロジェクトのリンク部分で強制的にライブラリ名を指定したりしましたが、 3rdパーティのライブラリまで用意しないといけないようです。 お勧めの基本的手順みたいなものはないでしょうか。
メンテ

Page: 1 |

Re: DxLibMake3_22aに付いて ( No.1 )
名前:管理人 日時:2020/12/06 22:15

ソースのファイル名の中に『UseCLib』という文言が入っているファイルを 全て除外してビルドすると 3rdパーティのライブラリを用意しなくても リンクが成功する libファイルを作成することができます ( 3rdパーティのライブラリを使用しているコードの中で ブレークさせたりすることはできませんが… ) あと、こちら↓のURLに暫定最新版のDXライブラリを、libファイルではなくソースを 直接コンパイルしてテストプログラムを実行するプロジェクトをアップしているのですが https://dxlib.xsrv.jp/temp/DxLibSourceTest.zip こちら↓のURLには 3rdパーティのライブラリの中からDXライブラリのコンパイルに 必要なファイルのみを抽出して同梱したプロジェクトをアップしていますので、 もし 3rdパーティのライブラリを使用しているコードの挙動もご確認されたい場合は こちらを使用してください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibSourceTest_WithUseCLib.zip
メンテ
Re: DxLibMake3_22aに付いて ( No.2 )
名前:昭和ロートル(解決ずみ) 日時:2020/12/07 12:30

早速の回答有難うございます。 ダウンロードさせていただきました。 メイクした結果 DxLibSourceTest の方は、何故かリンクエラーが出てうまくメイク出来ませんでした。 但し DxLibSourceTest_WithUseCLib の方は、何の問題もなくメイク出来、デバッグも問題なく出来ましたのでこれを使っていろいろ遊んでみます。 尚、エラーの内容は以下の通りです。参考に 1>DxLib_vs2015_x64_MT.lib(DxGraphics.obj) : error LNK2005: "struct DxLib::GRAPHICSSYSTEMDATA DxLib::GraphicsSysData" (?GraphicsSysData@DxLib@@3UGRAPHICSSYSTEMDATA@1@A) は既に DxGraphics.obj で定義されています。 1>DxLib_vs2015_x64_MT.lib(DxGraphicsWin.obj) : error LNK2005: "struct DxLib::GRAPHICSMANAGE_WIN DxLib::GraphicsManage_Win" (?GraphicsManage_Win@DxLib@@3UGRAPHICSMANAGE_WIN@1@A) は既に DxGraphicsWin.obj で定義されています。 1>DxLib_vs2015_x64_MT.lib(DxGraphicsD3D9.obj) : error LNK2005: "enum D_D3DFORMAT * DxLib::g_DXD3D9FMT_to_D3DFORMAT" (?g_DXD3D9FMT_to_D3DFORMAT@DxLib@@3PAW4D_D3DFORMAT@@A) は既に DxGraphicsD3D9.obj で定義されています。 1>DxLib_vs2015_x64_MT.lib(DxGraphicsD3D9.obj) : error LNK2005: "struct DxLib::GRAPHICS_HARDDATA_DIRECT3D9 DxLib::GraphicsHardDataDirect3D9" (?GraphicsHardDataDirect3D9@DxLib@@3UGRAPHICS_HARDDATA_DIRECT3D9@1@A) は既に DxGraphicsD3D9.obj で定義されています。 1>DxLib_vs2015_x64_MT.lib(DxGraphicsD3D11.obj) : error LNK2005: "struct DxLib::GRAPHICS_HARDDATA_DIRECT3D11 DxLib::GraphicsHardDataDirect3D11" (?GraphicsHardDataDirect3D11@DxLib@@3UGRAPHICS_HARDDATA_DIRECT3D11@1@A) は既に DxGraphicsD3D11.obj で定義されています。 将来のDirectX12対応は難しそうですか?
メンテ
Re: DxLibMake3_22aに付いて ( No.3 )
名前:管理人 日時:2020/12/08 00:04

DxLibSourceTest_WithUseCLib では正常にメイクできたようで何よりです > DxLibSourceTest > の方は、何故かリンクエラーが出てうまくメイク出来ませんでした。 ご指摘ありがとうございます、手元でエラーが発生するのを確認しました 以前は正常にビルド出来ていたのですが、ちょっと原因が不明です… VisualStudio2019はマイナーバージョンアップでもコンパイラが更新されるので、 その関係で別バージョンで作成された libファイルとの併用ができなくなった、等の 変化があったのかもしれません 暫くは DxLibSourceTest で事足りる場合も DxLibSourceTest_WithUseCLib を 使用していただくようにしようと思います… > 将来のDirectX12対応は難しそうですか? 何れ対応するかもしれませんが、今のところDirectX12への対応の予定はありません DirectX12 の特徴はビデオカードへ送るコマンドをバッファに溜めて一気に送る というところで、最大の利点はビデオカードへ送るコマンドを複数スレッドで 同時に複数構築して一気に送ることで、DirectX11以前よりCPU負荷を小さくして 高速に描画できるという点だと思うのですが、DXライブラリは基本的に シングルスレッドで動作することを前提としていて、且つシングルスレッドの場合は コマンドを一つしか溜めることができないので、コマンドを送るタイミングや 構築する量などをきちんと理解していないと逆にDirectX11より遅くなって しまったりするなど、あまりDXライブラリがDirectX12を使用するメリットが 無い(寧ろ、DirectX12対応のコードの分だけ実行ファイルが大きくなるというデメリットが…) 為 DirectX11がかつてのDirectDrawのように『実行はできるけどDirectX12による エミュレート動作で非常に低速』などの状況にならない限りは対応する 必要は無いかな、と思っています (- -;;
メンテ
Re: DxLibMake3_22aに付いて ( No.4 )
名前:昭和ロートル (解決済み) 日時:2020/12/08 12:40

丁寧なコメントありがとうございます。 今年に入ってDirectX12を勉強し始めて四苦八苦していましたので、質問させていただきました。 今ちょっとした3Dベースのエンジンみたいなものを作りたいと思っています。 DxLibを見つけての第一印象は、特大の全品乗り丼といった感じでした。 ただ、私にはちょっと大きすぎて完食出来そうになかったので躊躇してました。 私のような年寄りはどちらかというと懐石料理のように少しずつ頂く方が好みです。 ただ、DxLibの実装は、非常に新しく興味を惹かれました。 少しづつ勉強しながら利用させていただきます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存