対処法の分からないバグ

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

対処法の分からないバグ

#1

投稿記事 by jay » 15年前

いままでに出くわしたことのない、対処法が全く分からないバグが出てきました。
どなたか対処法を教えて下さい。

error C2664: 'DxLib::printfDx' : 1 番目の引数を 'const char [29]' から 'const TCHAR *' に変換できません。

というものです。
コードは単純に
if(dnumy==0){printfDx("boss_shot_bulletH021で0割り\n"); return ;}

という実行中に誤作動が起きたら(dnumyが0になってしまったら)エラーを知らせると言うだけのものです。

Justy

Re:対処法の分からないバグ

#2

投稿記事 by Justy » 15年前

 最新版を入れたのですね。

 プロジェクトの構成プロパティの全般にある文字セットの項目を「Unicode 文字セットを使用する」から
「マルチ バイト文字セットを使用する」に変えてみてください。

初級者

Re:対処法の分からないバグ

#3

投稿記事 by 初級者 » 15年前

バグではなくて、コンパイルエラーです。

jay

Re:対処法の分からないバグ

#4

投稿記事 by jay » 15年前

Justyさん、たびたび助けていただいてありがとうございます。
おかげで無事ビルド出来ました。

これは・・・、つまり”最新版ならではの都合”と言うやつなのですね。
これで全ての問題は解決した・・・、ハズ・・・。

とにかくお世話になりました。

ZASEA

Re:対処法の分からないバグ

#5

投稿記事 by ZASEA » 15年前

文字列の部分(ダブルクォーテーション)で囲まれているところをその外側からさらに_T()で囲んでください。
そして、ソースの先頭に#include <tchar.h>を追加すると解決できるかもしれません。
これなら文字セットの設定等に関係なくビルドできるようになるはずです。

toyo

Re:対処法の分からないバグ

#6

投稿記事 by toyo » 15年前

DXライブラリが3.03からUnicode対応になっていますね
関数の引数がchar*がTCHAR*に変更になっているようです
同様の質問が今後増えそうですね
回答の雛形を用意しておいたほうがいいかも
すでに作成済みのプログラムはプロジェクトの設定を変更にしてこれから作る場合はTCHAR対応で書くのがいいのでしょうか
#include <tchar.h>
は新しいDxLib.hではインクルードされています

naohiro19

Re:対処法の分からないバグ

#7

投稿記事 by naohiro19 » 15年前

toyoさん>
Visual Stuidio(以下VS) 2005以上だとデフォルトでUnicode文字列を扱うように変更されています。
VS2005以下だと「マルチバイト文字列」をデフォルトで使うようになっています。

Justy

Re:対処法の分からないバグ

#8

投稿記事 by Justy » 15年前

toyoさん
>すでに作成済みのプログラムはプロジェクトの設定を変更にして
>これから作る場合はTCHAR対応で書くのがいいのでしょうか  ですね。
 龍神録系に関しては TCHAR/wchar_tについて知らない「プログラム始めて数週間」という方までもが
使っている現状を考えると、設定でプロジェクトの設定をマルチバイト文字列に変える方が説明する方
としては楽ですね。

 新規の場合でも TCHARを使って本当にどちらの環境でもビルドが通るようにしなければならないケースは
結構希だと思いますので、設定をどちらかにしぼり char / wchar_tのどちらかを使う
(特に理由がなければ 3.03以前のライブラリに差し替えても動くマルチバイト文字列)で
いいのではないでしょうか。

 ちなみに今の 3.03における Unicode対応はまだ途中なのか、一部 charが使われているところが
ありますし、Unicode時のリリースビルドでリンクが通らないなど、問題も残っているようなので
ちょっと要注意なのかも。



naohiro19さん
>2005以上
>2005以下
 2005はどっちに入りますか?

toyo

Re:対処法の分からないバグ

#9

投稿記事 by toyo » 15年前

私もVC++6.0から使ってVC++2005EEに変えたときに戸惑いましたね
その後しばらくはずっとTCHARは使わずマルチバイト文字列に変えてやってましたから慣れてない人にはそちらがいいでしょうね

閉鎖

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