- ベストアンサー
C開発環境構築について
今まで自宅ではBCC(BCCDev)を使っていたんですが、先頃VC2005 Express Edition に変更してみようと思い ダウンロード&インストールしました。 しかし、実際にExpress Editionを使ってみるとなにやら仕様(記述法?)が若干違っていて困っています。 学校ではVC5.0を使っていて文法もほぼBCCと同じだったのでExpressEditionもVC5.0のような文法にすることはできませんでしょうか? 自分なりに調べてみたのですが調べ方が悪かったのかなかなか出てきませんでした。 どうかご教授下さいよろしくお願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
記述法というと、どのようなものでしょうか? 勘違いだったら申し訳ないのですが、 #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { return 0; } のようなコードが存在していているというのに困っているのでしたら、プロジェクトを作成する際に「アプリケーションの設定」で「空のプロジェクト」にチェックを入れることで何もない状態からはじめることができます。 その後、ソースファイルに「追加」→「新しい項目」でmain.cなどといったものを追加することで同じようにできると思います。 この回答には当てはまらないことでしたら、その「具体的にどんな風になって困っているか」をお教えいただければまた回答できるかと思います。
その他の回答 (2)
- shibamu
- ベストアンサー率50% (10/20)
Oh-Orangeさんが既に回答されているので補足の補足みたいなものですが… もし、プロジェクトの文字コード設定をUnicodeでなく従来のマルチバイト文字に変更したい場合、ソリューションエクスプローラのプロジェクトのところを右クリックしてプロパティを開くとそこで変更することができます。
お礼
No3さんありがとうございます たしかに設定でマルチバイト文字にできました。 まだまだ自分が勉強不足でしたね こういうことも含めて今後いろいろ勉強していきたいです 皆さんありがとうございました。
- Oh-Orange
- ベストアンサー率63% (854/1345)
★別人ですがよろしいですか? ・ビルド・エラーは『LPCWSTR』ですか?→『LPCTSTR』のような気がしますが? ・まぁ、とにかく VC2005 Express Edition では文字列関連は大幅に面倒な設定・環境に なってしまったようです。これからごろごろとでてくるかもね。 ・ちなみに私は『Visual Studio.NET 2003 C/C++』です。 ・文字列には TEXT マクロ関数を利用してみましょう。 ・つまり、 『MessageBox( NULL, TEXT("aaa"), TEXT("bbb"), MB_OK );』 ・とするのです。 ・まずはこれでどうなるかビルドしてみて下さい。 ・『TEXT』マクロはビルド時の設定から文字列を Unicode コードか、シフトJISコードかを コンパイル時に自動・切り替えしてくれます。 ・それで『LPCWSTR』というメッセージが正しければ Unicode コードで文字列を扱う設定に なっていると思います。 ・この設定で "aaa" という文字列を指定すると、"aaa" はシフトJISコードの文字列ですので 型が合わないよとエラーになると思います。 ・『TEXT』マクロを使わないときは『L"aaa"』という『L』文字を先頭に記述すれば、その 文字列は Unicode コードの文字列(LPCWSTR)の型になります。 ・でもいちいち『L』を付けるのは面倒なので TEXT() マクロを使いましょう。 ・ビルド時に日本語環境(シフトJISコード)か、国際向け環境(Unicodeコード)かをオプションで 切り替えれば『L』の追加・削除の編集は必要なくなります。ですから、TEXT マクロを使い ましょう。
お礼
>★別人ですがよろしいですか? 全く問題ありません。 >・ビルド・エラーは『LPCWSTR』ですか?→『LPCTSTR』のような気がしますが? エラーをそのままコピペしたので違いはありません。 一応何度も見直してみましたがLPCWSTRでした。 >文字列には TEXT マクロ関数を利用してみましょう。 実験したら動きました。ありがとうございます。 >・でもいちいち『L』を付けるのは面倒なので TEXT() マクロを使いましょう。 VC5.0やBCCを使っていたので(VC5.0については現在も使用中)なかなかTEXTマクロに馴染めませんね。これからがんばって慣れていきたいと思います。 あと、変数の場合は「 (LPCWSTR)変数名 」で型キャストで問題なかったですよね? いろいろと参考になりました。ありがとうございます
お礼
回答ありがとうございます。 shibamuさんのおかげで解決しました。 ありがとうございます。 ただ、もうひとつ壁にぶち当たってしまい MessageBox(NULL,"aaa","bbb",MB_OK); という文がソース中に入っているのですが ビルドすると「char [4]' から 'LPCWSTR' に変換できません。」 とのエラーで怒られます。 型キャスト等をやってみたのですが、うまくいきませんでした。 いろいろ試したんですが、文字列系にはこのエラーがほぼ出てきます。 どうやって回避すれば良いでしょうか? 本当は新規で質問すべきなのでしょうが、新しくたてるほどの質問じゃないと思ったのでここに書かせていただいております。 よろしくお願いいたします。