Dxlib_d.libについて
Dxlib_d.libについて
ホーミングレーザーを作ろうと思い、http://ktstg.blog.shinobi.jp/Entry/677/
ここのプロジェクトファイルを参考にしようとダウンロードをし、slnで開いたところDxLib.hが開けないということだったので、
学校でDxLib.hの入っているフォルダをコピーしプロジェクトにそのフォルダの中のファイルすべてを入れて実行したらエラーが出ました。
このエラーはどうすれば解決するでしょうか?学校のプロジェクトは正しくうごきます。
入れたファイルは下のものです。
DxDirectX.h
DxDrawFunc.lib
DxLib.h
DxLibW_d.lib
DxLib_d.lib
DxuseCLib_d.lib
libjpeg_d.lib
libpng_d.lib
libtheora_static_d.lib
vorbis_static_d.lib
vorbisfile_static_d.lib
zlib_d.lib
エラーは
1>DxLib_d.lib(DxFont.obj) : error LNK2005: "int __cdecl DxLib::CheckUTF16H(wchar_t)" (?CheckUTF16H@DxLib@@YAH_W@Z) は既に DxLibW_d.lib(DxFont.obj) で定義されています。
というような内容が連なっています。
なので、DxLib.hだけ残して、ほかのファイルを削除して実行すると、消したファイルが開けないというエラーがでました。
その開けないファイルを一つづつもどしてしていたら、結局消したファイル全部戻すことになりました。
最後のファイルまでもどすと↑のようなエラーがずらっと並びます。
これを解決する方法はありますか?
ここのプロジェクトファイルを参考にしようとダウンロードをし、slnで開いたところDxLib.hが開けないということだったので、
学校でDxLib.hの入っているフォルダをコピーしプロジェクトにそのフォルダの中のファイルすべてを入れて実行したらエラーが出ました。
このエラーはどうすれば解決するでしょうか?学校のプロジェクトは正しくうごきます。
入れたファイルは下のものです。
DxDirectX.h
DxDrawFunc.lib
DxLib.h
DxLibW_d.lib
DxLib_d.lib
DxuseCLib_d.lib
libjpeg_d.lib
libpng_d.lib
libtheora_static_d.lib
vorbis_static_d.lib
vorbisfile_static_d.lib
zlib_d.lib
エラーは
1>DxLib_d.lib(DxFont.obj) : error LNK2005: "int __cdecl DxLib::CheckUTF16H(wchar_t)" (?CheckUTF16H@DxLib@@YAH_W@Z) は既に DxLibW_d.lib(DxFont.obj) で定義されています。
というような内容が連なっています。
なので、DxLib.hだけ残して、ほかのファイルを削除して実行すると、消したファイルが開けないというエラーがでました。
その開けないファイルを一つづつもどしてしていたら、結局消したファイル全部戻すことになりました。
最後のファイルまでもどすと↑のようなエラーがずらっと並びます。
これを解決する方法はありますか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Dxlib_d.libについて
DXライブラリのライブラリの設定をちゃんと行なってもらうしか無いと思います。
「DXライブラリ置き場 使い方説明」
http://homepage2.nifty.com/natupaji/DxLib/dxuse.html
「DXライブラリ置き場 使い方説明」
http://homepage2.nifty.com/natupaji/DxLib/dxuse.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: Dxlib_d.libについて
Visual stadio 2010の設定の仕方を見てやってみたのですが、ダメ見たいです。
なぜなのでしょうか・・・
相変わらず多重定義されているとでます。DxLib内のエラーのようですが、アンインストールして何回か試すしかないですかね
なぜなのでしょうか・・・
相変わらず多重定義されているとでます。DxLib内のエラーのようですが、アンインストールして何回か試すしかないですかね
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Dxlib_d.libについて
違うDXLIBがリンクされているような印象を受けますのでアンインストールは解決にはならないでしょう。EKISUKE さんが書きました:Visual stadio 2010の設定の仕方を見てやってみたのですが、ダメ見たいです。
なぜなのでしょうか・・・
相変わらず多重定義されているとでます。DxLib内のエラーのようですが、アンインストールして何回か試すしかないですかね
少なくともプロジェクトを新規で作って、ソースコードだけもっていけば問題は出ないはずです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: Dxlib_d.libについて
できました。有難うございます。
原因は、学校でつかっているDxLibとプロパティで追加のインクルードファイル両方があったためだと思います。
学校で使っているほうを消して実行したらできました。しかし、学校では両方あるのに、多重定義にならないのはなぜでしょうかね。2008のだと大丈夫なのでしょうか
それと、ほかのプロジェクトで作ったところ、(winプロジェクト)
IntelliSense: 型 "const char *" の引数は型 "const TCHAR *" のパラメーターと互換性がありません
というエラーがでます。元のほうではでないのですが、Winプロジェクトだとどこか変わるのでしょうか?
その部分のプログラム ここの" "で囲んでいる部分に波線がでてエラーが表示されます。
原因は、学校でつかっているDxLibとプロパティで追加のインクルードファイル両方があったためだと思います。
学校で使っているほうを消して実行したらできました。しかし、学校では両方あるのに、多重定義にならないのはなぜでしょうかね。2008のだと大丈夫なのでしょうか
それと、ほかのプロジェクトで作ったところ、(winプロジェクト)
IntelliSense: 型 "const char *" の引数は型 "const TCHAR *" のパラメーターと互換性がありません
というエラーがでます。元のほうではでないのですが、Winプロジェクトだとどこか変わるのでしょうか?
その部分のプログラム ここの" "で囲んでいる部分に波線がでてエラーが表示されます。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Dxlib_d.libについて
2010以降と2008以前ではプロジェクトの作り方が変わっているので、それがあると思います。
あとTCHARはプロジェクトのプロパティで文字セットをマルチバイト文字に変更していますか?
「DXライブラリ置き場 使い方説明」
http://homepage2.nifty.com/natupaji/DxL ... ss.html#R4
あとTCHARはプロジェクトのプロパティで文字セットをマルチバイト文字に変更していますか?
「DXライブラリ置き場 使い方説明」
http://homepage2.nifty.com/natupaji/DxL ... ss.html#R4
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: Dxlib_d.libについて
いけました有難うございます。
文字セットをマルチにすると、文字が日本語でも対応ができるという認識であってるでしょうか?
文字セットをマルチにすると、文字が日本語でも対応ができるという認識であってるでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Dxlib_d.libについて
いえ、UNICODEでも日本語です。EKISUKE さんが書きました:いけました有難うございます。
文字セットをマルチにすると、文字が日本語でも対応ができるという認識であってるでしょうか?
マルチバイトはSHIFT-JIS文字コード、UNICODEは16bitのワイド文字コードになりますので書き方が変わるだけです。
下記サイトをお読みください。
「今さら聞けない、教えてもらえない!! Unicode /マルチバイト文字対応 国際化VC ++ プログラミングの基礎!! - JAPAN Platform SDK(Windows SDK) Support Team Blog - Site Home - MSDN Blogs」
http://blogs.msdn.com/b/japan_platform_ ... de-vc.aspx
「_T("")マクロだのL""マクロだのLPCTSTRだのの世界一詳しい解説」
http://victreal.com/Junk/_T/index.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: Dxlib_d.libについて
こちらのサイトを読ませていただきました。softya(ソフト屋) さんが書きました:「_T("")マクロだのL""マクロだのLPCTSTRだのの世界一詳しい解説」
http://victreal.com/Junk/_T/index.html
UNICODEは文字のByteによって区別しない考え方で
マルチバイトはByteによって区別する考え方のことですね。
だからconst char で渡しているのでconst TCHARでは互換性がないのでマルチバイトにして渡されるほうもconst charにしたということであっているでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: Dxlib_d.libについて
UNICODEはwchar型でマルチバイトはchar型を使います。
TCHARはプロジェクトの設定次第でwcharかcharに置き換わるのですが、wcharとcharを1つのプロジェクトに混ぜるのは色々問題を引き起こします。
基本はマルチバイト文字を使うで良いと思いますので、自分で意図的にwchar型とchar型の変換ができる文字コードに関する知識を身につけるまではUNICODEとTCHARとwcharは気をつけないといけないと覚えておいてください。
TCHARはプロジェクトの設定次第でwcharかcharに置き換わるのですが、wcharとcharを1つのプロジェクトに混ぜるのは色々問題を引き起こします。
基本はマルチバイト文字を使うで良いと思いますので、自分で意図的にwchar型とchar型の変換ができる文字コードに関する知識を身につけるまではUNICODEとTCHARとwcharは気をつけないといけないと覚えておいてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: Dxlib_d.libについて
わかりました。有難うございます。
DXlibだけでなくほかのことについても答えていただき非常に勉強になりました。
DXlibだけでなくほかのことについても答えていただき非常に勉強になりました。