Dxlib_d.libについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
EKISUKE
記事: 108
登録日時: 13年前

Dxlib_d.libについて

#1

投稿記事 by EKISUKE » 13年前

ホーミングレーザーを作ろうと思い、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だけ残して、ほかのファイルを削除して実行すると、消したファイルが開けないというエラーがでました。
その開けないファイルを一つづつもどしてしていたら、結局消したファイル全部戻すことになりました。
最後のファイルまでもどすと↑のようなエラーがずらっと並びます。
これを解決する方法はありますか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: Dxlib_d.libについて

#2

投稿記事 by softya(ソフト屋) » 13年前

DXライブラリのライブラリの設定をちゃんと行なってもらうしか無いと思います。

「DXライブラリ置き場 使い方説明」
http://homepage2.nifty.com/natupaji/DxLib/dxuse.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

EKISUKE
記事: 108
登録日時: 13年前

Re: Dxlib_d.libについて

#3

投稿記事 by EKISUKE » 13年前

Visual stadio 2010の設定の仕方を見てやってみたのですが、ダメ見たいです。
なぜなのでしょうか・・・
相変わらず多重定義されているとでます。DxLib内のエラーのようですが、アンインストールして何回か試すしかないですかね

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: Dxlib_d.libについて

#4

投稿記事 by softya(ソフト屋) » 13年前

EKISUKE さんが書きました:Visual stadio 2010の設定の仕方を見てやってみたのですが、ダメ見たいです。
なぜなのでしょうか・・・
相変わらず多重定義されているとでます。DxLib内のエラーのようですが、アンインストールして何回か試すしかないですかね
違うDXLIBがリンクされているような印象を受けますのでアンインストールは解決にはならないでしょう。
少なくともプロジェクトを新規で作って、ソースコードだけもっていけば問題は出ないはずです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

EKISUKE
記事: 108
登録日時: 13年前

Re: Dxlib_d.libについて

#5

投稿記事 by EKISUKE » 13年前

できました。有難うございます。
原因は、学校でつかっているDxLibとプロパティで追加のインクルードファイル両方があったためだと思います。
学校で使っているほうを消して実行したらできました。しかし、学校では両方あるのに、多重定義にならないのはなぜでしょうかね。2008のだと大丈夫なのでしょうか

それと、ほかのプロジェクトで作ったところ、(winプロジェクト)
IntelliSense: 型 "const char *" の引数は型 "const TCHAR *" のパラメーターと互換性がありません
というエラーがでます。元のほうではでないのですが、Winプロジェクトだとどこか変わるのでしょうか?

その部分のプログラム

コード:

 DrawFormatString(520,440,color_white,"FPS %.1f",Fps); //fpsを表示
DrawFormatString(520,420,color_white,"-FPS表示-",Fps); //fpsを表示
//////////////////////////////////////////////////////////////////
DrawString( 0 , 0 , "↑↓←→で自機移動" , color_white );
DrawString( 0 , 20 ,"Zキーでホーミング発射" , color_white );
ここの" "で囲んでいる部分に波線がでてエラーが表示されます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: Dxlib_d.libについて

#6

投稿記事 by softya(ソフト屋) » 13年前

2010以降と2008以前ではプロジェクトの作り方が変わっているので、それがあると思います。
あとTCHARはプロジェクトのプロパティで文字セットをマルチバイト文字に変更していますか?
「DXライブラリ置き場 使い方説明」
http://homepage2.nifty.com/natupaji/DxL ... ss.html#R4
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

EKISUKE
記事: 108
登録日時: 13年前

Re: Dxlib_d.libについて

#7

投稿記事 by EKISUKE » 13年前

いけました有難うございます。
文字セットをマルチにすると、文字が日本語でも対応ができるという認識であってるでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: Dxlib_d.libについて

#8

投稿記事 by softya(ソフト屋) » 13年前

EKISUKE さんが書きました:いけました有難うございます。
文字セットをマルチにすると、文字が日本語でも対応ができるという認識であってるでしょうか?
いえ、UNICODEでも日本語です。
マルチバイトは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(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

EKISUKE
記事: 108
登録日時: 13年前

Re: Dxlib_d.libについて

#9

投稿記事 by EKISUKE » 12年前

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について

#10

投稿記事 by softya(ソフト屋) » 12年前

UNICODEはwchar型でマルチバイトはchar型を使います。
TCHARはプロジェクトの設定次第でwcharかcharに置き換わるのですが、wcharとcharを1つのプロジェクトに混ぜるのは色々問題を引き起こします。
基本はマルチバイト文字を使うで良いと思いますので、自分で意図的にwchar型とchar型の変換ができる文字コードに関する知識を身につけるまではUNICODEとTCHARとwcharは気をつけないといけないと覚えておいてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

EKISUKE
記事: 108
登録日時: 13年前

Re: Dxlib_d.libについて

#11

投稿記事 by EKISUKE » 12年前

わかりました。有難うございます。
DXlibだけでなくほかのことについても答えていただき非常に勉強になりました。

閉鎖

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