s2. サウンドノベル風文字列表示法1 のエラーについて
s2. サウンドノベル風文字列表示法1 のエラーについて
はじめまして。最近ゲームプログラミングの館で勉強をしているこめかみと申します。
触れ込みのとおり大変わかりやすく管理人のDixqさんには感謝の念が尽きません。
早速質問です。
サンプルプログラムを上から一つづつ咀嚼してる最中なのですが、タイトル通り"s2. サウンドノベル風文字列表示法1"のサンプルプログラムのコンパイルでエラーが解決できなく完全にお手上げ状態で困っています。
環境はWindowsXP,BCCでエラーの内容は以下のとおりです。
> c:\borland\bcc55\Bin\make.exe -fDebug\test.mak TARGET
MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
bcc32 -W -3 -Od -w- -AT -pc -H- -k -b -v -y -DDEBUG -nDebug -c D:\ゲームプログラミングの館\test\DrawPixel.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
D:\ゲームプログラミングの館\test\DrawPixel.cpp:
エラー E2264 D:\ゲームプログラミングの館\test\DrawPixel.cpp 4: 式が必要
*** 1 errors in Compile ***
** error 1 ** deleting Debug\DrawPixel.obj
Make End !! (Elapsed time 0:01.500)
他のサンプルプログラムは問題なくコンパイル(メイク?コンパイルとメイクの違いがわかりません)後、実行できて来ました。別のサンプルプログラムでコンパイルしても滞りなく実行できますので環境設定を書き換えてしまったと言うわけでは無いように思います。
何が問題で何を直せばこのコンパイルが成功するのか。どうぞよろしくお願いします。
似たような結果を出すサンプルプログラムはDXライブラリ本家にもありそちらは問題なく実行迄こぎつけるのですが。僕はこちらでお世話になるからにはこちらのサンプルも把握したいと思っています。
ええと・・・一応スクショも。これでいいのかな?間違えたらすみません。
触れ込みのとおり大変わかりやすく管理人のDixqさんには感謝の念が尽きません。
早速質問です。
サンプルプログラムを上から一つづつ咀嚼してる最中なのですが、タイトル通り"s2. サウンドノベル風文字列表示法1"のサンプルプログラムのコンパイルでエラーが解決できなく完全にお手上げ状態で困っています。
環境はWindowsXP,BCCでエラーの内容は以下のとおりです。
> c:\borland\bcc55\Bin\make.exe -fDebug\test.mak TARGET
MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
bcc32 -W -3 -Od -w- -AT -pc -H- -k -b -v -y -DDEBUG -nDebug -c D:\ゲームプログラミングの館\test\DrawPixel.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
D:\ゲームプログラミングの館\test\DrawPixel.cpp:
エラー E2264 D:\ゲームプログラミングの館\test\DrawPixel.cpp 4: 式が必要
*** 1 errors in Compile ***
** error 1 ** deleting Debug\DrawPixel.obj
Make End !! (Elapsed time 0:01.500)
他のサンプルプログラムは問題なくコンパイル(メイク?コンパイルとメイクの違いがわかりません)後、実行できて来ました。別のサンプルプログラムでコンパイルしても滞りなく実行できますので環境設定を書き換えてしまったと言うわけでは無いように思います。
何が問題で何を直せばこのコンパイルが成功するのか。どうぞよろしくお願いします。
似たような結果を出すサンプルプログラムはDXライブラリ本家にもありそちらは問題なく実行迄こぎつけるのですが。僕はこちらでお世話になるからにはこちらのサンプルも把握したいと思っています。
ええと・・・一応スクショも。これでいいのかな?間違えたらすみません。
Re:s2. サウンドノベル風文字列表示法1 のエラーについて
oldKey[256]=""にしたら実行できました。ibisさんありがとうございました。
あと、このプログラムはサンプルのコピーなのでサンプルの間違いということになるのでしょうか。
管理人さんに伝えたほうがいいのかな。
あの、ココを見てたら直してくださいね。それでは。
あと、このプログラムはサンプルのコピーなのでサンプルの間違いということになるのでしょうか。
管理人さんに伝えたほうがいいのかな。
あの、ココを見てたら直してくださいね。それでは。
Re:s2. サウンドノベル風文字列表示法1 のエラーについて
いえ、コンパイラの違いによるものです。
BCCではエラーですが、Visual C++では正常にコンパイルできますよ。
BCCではエラーですが、Visual C++では正常にコンパイルできますよ。
ちょっと試してみました。 コンパイルできるのは VC++ GCC できないのは BCC DMC 何故かコンパイルできてリンクできないのは LightC という結果に。 中途半端なことに、ほぼ50:50ですねぇ。
Re:s2. サウンドノベル風文字列表示法1 のエラーについて
> 同じ言語でもコンパイラによって違うのですか。
コンパイラによって,どこまで標準に準拠しているかや,拡張をしているかが異なります。
また,C/C++にはImplementation-definedという,標準がコンパイラに決定を依存している部分もあります。
今回の場合,ISO/IEC 14882:2003の8.5.1 Aggregatesの第8段落第2文に
> An empty initializer-list can be used to initialize any aggregate.
とあるので,該当箇所でエラーが発生するのは非標準の振る舞いということになります。
コンパイラによって,どこまで標準に準拠しているかや,拡張をしているかが異なります。
また,C/C++にはImplementation-definedという,標準がコンパイラに決定を依存している部分もあります。
今回の場合,ISO/IEC 14882:2003の8.5.1 Aggregatesの第8段落第2文に
> An empty initializer-list can be used to initialize any aggregate.
とあるので,該当箇所でエラーが発生するのは非標準の振る舞いということになります。
Re:s2. サウンドノベル風文字列表示法1 のエラーについて
ええと、ISO/IEC 14882:2003の8.5.1 Aggregates というのはどこにあるんでしょうか。
Re:s2. サウンドノベル風文字列表示法1 のエラーについて
ISO/IECの国際規格ですねぇ。
14882でしたらC++ですね。
ISOよりもJISの方がわかりやすいかと思いますよ。
内容は同じなのですが、ISOは英語でJISは日本語です。
JISのC言語の規格はこのサイトにあります。
http://www.jisc.go.jp/app/pager?id=8911
同じく、C++はこちら。
http://www.jisc.go.jp/app/pager?id=9014
14882でしたらC++ですね。
ISOよりもJISの方がわかりやすいかと思いますよ。
内容は同じなのですが、ISOは英語でJISは日本語です。
JISのC言語の規格はこのサイトにあります。
http://www.jisc.go.jp/app/pager?id=8911
同じく、C++はこちら。
http://www.jisc.go.jp/app/pager?id=9014
Re:s2. サウンドノベル風文字列表示法1 のエラーについて
返信ありがとうございます。
せっかくリンクしていただいたのですがリンク先にファイルがありませんでした。
ググれば見つかるのかな。
せっかくリンクしていただいたのですがリンク先にファイルがありませんでした。
ググれば見つかるのかな。
Re:s2. サウンドノベル風文字列表示法1 のエラーについて
あ、すみません。
リンク先の上のほうに「PDF Adobe」ってかかれた小さい画像がありますよね。
それをクリックしてみてください。
リンク先の上のほうに「PDF Adobe」ってかかれた小さい画像がありますよね。
それをクリックしてみてください。
Re:s2. サウンドノベル風文字列表示法1 のエラーについて
・・・あれ、何度か試しましたが、リンク切れでも無いっぽいですよ?
行けたり行けなかったりします。
というかC規格のアドレスは2回載せましたが、どちらでも同じところにつながってるっぽいです。
行けたり行けなかったりします。
というかC規格のアドレスは2回載せましたが、どちらでも同じところにつながってるっぽいです。
Re:s2. サウンドノベル風文字列表示法1 のエラーについて
言語の検索でたどりつけました。
あ、普通にクリックで落とせますね。失礼しました。
operaで別のタブで開くのが癖になっているもので。
ありがとうございます。
あ、普通にクリックで落とせますね。失礼しました。
operaで別のタブで開くのが癖になっているもので。
ありがとうございます。
Re:s2. サウンドノベル風文字列表示法1 のエラーについて
VC++でプログラムを書かれる事を前提としたサンプルなので、ほかのコンパイラの事を考えていませんでした。
確か{}の所を{0,}とすればよかったのではないかと思います。
他にもfor(int i=0;)という書き方はC++のコンパイラではないとエラーになると思いますし、
BCCではextern文はmain関数内で宣言出来ないなど、色々とVC++以外ではエラーになることが多いと思います。
なるべく、多いコンパイラで問題ないように修正していこうとおもいます。
混乱させてしまいすみません。
確か{}の所を{0,}とすればよかったのではないかと思います。
他にもfor(int i=0;)という書き方はC++のコンパイラではないとエラーになると思いますし、
BCCではextern文はmain関数内で宣言出来ないなど、色々とVC++以外ではエラーになることが多いと思います。
なるべく、多いコンパイラで問題ないように修正していこうとおもいます。
混乱させてしまいすみません。