こんばんは

表記の件に関して質問があります。
表題のとおりなのですが
visual studio 2005 でc++/CLI ではないC++(gcnewがでてこないやつ)
windowsアプリを作成したいのですが、出来ますでしょうか。
2003にすればたぶん大丈夫なのですが、2005でできないでしょうか。
以上よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

有名どころでは「猫でもわかるプログラミング」でしょうね。


C#に慣れているのであれば、C言語の基本的なところからやっておいた方がよいでしょう。

http://homepage2.nifty.com/c_lang/
VC++2005なら
http://homepage2.nifty.com/c_lang/net2005/sample …
をまず理解する必要があり。
これに沿って、それぞれのサンプルを読み替える。
    • good
    • 0
この回答へのお礼

bluecampusさん

こんばんは~
ありがとうございます。

猫でもわかる~有名ですね~
参考にさせていただきます。

またわからないことがありましたら(わからないことだらけ
ですが…)質問させてください。

お礼日時:2009/05/14 20:25

追記



Express Editionでなければリソースエディタが付属していますので、
リソースビューから、ダイアログの追加やコントロールの配置が可能です。

だだ、CLR フォームアプリケーションのプロジェクトからですと扱うのが少々面倒になります。
.NET Frameworkを一切使わないのであれば、Win32プロジェクトもしくはMFCプロジェクトで作成するべきでしょう。
    • good
    • 0

VC++2005 Express Editionではリソースエディタが付属していません。


ですので、VC++の画面から直接ダイアログのレイアウトをすることができません。
→できるのはCRL フォームアプリケーションになります。
→これを使った時点で、gcnewをつかうことになる。

フリーのソフトで、Win32リソースを編集できるようなソフトもあるので、
それを使ってみるのも手でしょう。
ちなみに、Windows Pratform SDKもVC++2005 Express Editionに付属していませんので、
別途手に入れて、セットアップする必要があります。
VC++2008 Express Editionなら同梱されています。
    • good
    • 0
この回答へのお礼

bluecampusさん

こんばんは。

少しC#をやっていたのですが、vsのツールをあまり考えずに
作っていたので、ちょっとわかりません…

参考サイトなど紹介(VSC++/CLIを使わずにアプリをさくせいしているもんのなど)していただけないでしょうか。

お手数おかけしますが、よろしくお願いします(__)

お礼日時:2009/05/13 20:19

あー もしかしてフォームエディタ(名前うろ覚えです)使ってます??


それだと.NETを使うかたちになるので、そうなりますね。つまりメイン画面をフォームエディタでつくろうとするのは無理です。

ダイアログを作るにはダイアログエディタを使用します。
    • good
    • 0
この回答へのお礼

renrui3844さん

こんばんはありがとうございます。
C++はC#と違って、いろいろあるのですね。
正直わからないので、参考サイトなどありましたら(簡単なCLIをつかわずアプリを作成しているもの)、紹介いただけると大変助かります。

お礼日時:2009/05/13 20:15

確かどのエディションでもできますよ。

2008でもできてますから。
新規ウィザードでWin32プロジェクトかMFCプロジェクトを選べばOKだと。ありませんか?

この回答への補足

renrui3844さん
こんばんは。ありがとうございます。

C++は初心者なのでMFCなど調べながらです。

>Win32プロジェクトかMFCプロジェクトを選べばOKだと

やってみたのですが、label buttonなど張りつけた段階で
gcnewが出てきますね。
その初期設定の段階での設定が必要なのでしょうか。

補足日時:2009/05/12 22:20
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QC言語のゲームのサンプルプログラムが置いてあって自由に修正できるサイト教えてもらえないでしょうか?

ゲームのサンプルプログラムが置いてあって自由に修正できるサイト教えてもらえないでしょうか?

Aベストアンサー

C言語、自体があまり初心者向けではないのですが、
Cを本気で学ぼうと考えるなら、書籍を購入する事をお勧めします。

「C言語〈1〉はじめてのCプログラミング プログラミング学習シリーズ」
倉 薫 (著)
アマゾン(http://www.amazon.co.jp/)の古本で400円で販売していました。
私が昔、他の人にC言語を教えるときに使った教材ですが非常に簡単でした。
「簡単」というのがポイントで初めてCを学ぶ方から非常に読みやすいと定評があった本です。

ただこれを読んだからといってすぐに市販されているようなゲームが作れるわけではありません。
C言語でゲームを作るのはかなり地道ですし下地になる知識が相当必要です。

とりあえず市販のコンパイラ(コンパイラというのはexe等を作るやつ)は
必要になってから買うので十分です。
先に説明した無償のコンパイラで市販レベルのソフトを作る事も可能なのです。
(市販のものと何が違うかというとマニュアル、ツール、ライブラリ等が付属している点)
やろうと思えばそのツールやライブラリもその無償のコンパイラで作れるわけですから。

また前回とかぶりますが
http://www.kumei.ne.jp/c_lang/bcc/index.html
でBCCというコンパイラをインストールし
http://www.kumei.ne.jp/c_lang/index_c.html
の1章から見ていって実際もexeにして実行してみてください。
このサイトも参考になります。

C言語、自体があまり初心者向けではないのですが、
Cを本気で学ぼうと考えるなら、書籍を購入する事をお勧めします。

「C言語〈1〉はじめてのCプログラミング プログラミング学習シリーズ」
倉 薫 (著)
アマゾン(http://www.amazon.co.jp/)の古本で400円で販売していました。
私が昔、他の人にC言語を教えるときに使った教材ですが非常に簡単でした。
「簡単」というのがポイントで初めてCを学ぶ方から非常に読みやすいと定評があった本です。

ただこれを読んだからといってすぐに市販されている...続きを読む

QVisual C++ 6.0とVisual C++ 2005 についてですが・・・

Visual C++ 6.0でワークスペースと呼ばれていた物がVisual C++ 2005になるとソリューションと言う名前になったと聞きました。
また、Visual C++ 6.0で製作したファイルはVisual C++ 2005でも開けるけどVisual C++ 2005製作したファイルはVisual C++ 6.0では開けないと聞いたのですがVisual C++ 2005製作したファイルをVisual C++ 6.0でも開ける様に互換性を持たせる方法はありませんか?
学校と家で使っている環境が違うので互換性がもてれば両方で使えてとても便利になります。
御存知の方がいましたら御伝授お願いします。

Aベストアンサー

ソースファイルやヘッダファイル(拡張子CPP/C/H/HPPなど)はVisual C++ 6.0と2005で共用できるので、6.0用のプロジェクトファイル&ワークスペースと、2005用のプロジェクトファイル&ソリューションファイルを用意すれば両方の環境で開発を進めることができるでしょう。

但し、以下の点にご注意下さい。
・ソースファイルの追加や削除は両方のプロジェクトに対して行うこと。
・Visual C++6.0ではManaged C++が使えないのでManaged C++は使わないこと。
・MFCの仕様がだいぶ違うので、MFCも避けること。MFCを知り尽くしているのでしたらチャレンジはご自由に。
・C++コンパイラとしても若干仕様が違うので(for文内で定義された変数のスコープなど)、常に両方の環境でコンパイルできるか考えながら開発する必要があること。

QC言語・ゲーム作成で挫折気味の対処方法

こんばんは。ゲーム作成に関わらず、C言語で挫折気味の時、みなさんはどのように対処してきましたか?
以下、私の現在の状況を説明致します。

C言語でゲームを作成するという目的でC言語を勉強し、ゲーム作成の勉強をしていました。
C言語の書籍を一通り行い、DXライブラリを使用して、それに関するサイト(ゲームプログラミングの館等)を参考にしながらゲーム作成の勉強をしていました。
しかし、除々に分からなくなり、手がつけられなくなってしまいました。
ゲームを早く作成してみたいという気持ちが先走り、C言語の知恵が足りない(勉強期間:1ヶ月程度)のに
ゲーム作成に取り掛かろうとしたことがが原因のひとつだと思い、もう一度、C言語を勉強し直そうと考えています。
しかし、数ある書籍やサイトの中でどれがゲームプログラミングを学ぶのに適しているの分かりません。
みなさんがゲームプログラミングをするにあたって利用した書籍やサイトはどのようなものでしょうか?
また、同じようにC言語でゲームを作成している方にお聞きしたいのですが、C言語をどの程度勉強されてからゲーム作成に取り掛かったのでしょうか?

みなさんの意見を参考にして、勉強していきたいので、よろしければアドバイスをお願い致します。

こんばんは。ゲーム作成に関わらず、C言語で挫折気味の時、みなさんはどのように対処してきましたか?
以下、私の現在の状況を説明致します。

C言語でゲームを作成するという目的でC言語を勉強し、ゲーム作成の勉強をしていました。
C言語の書籍を一通り行い、DXライブラリを使用して、それに関するサイト(ゲームプログラミングの館等)を参考にしながらゲーム作成の勉強をしていました。
しかし、除々に分からなくなり、手がつけられなくなってしまいました。
ゲームを早く作成してみたいという気持ちが先...続きを読む

Aベストアンサー

私は、最初の頃は「SDL」を使って2Dゲームを作っていました。
その頃は、C言語は関数もあまり分かっていませんでした。
ですけど、勉強し直して「OpenGL」で3Dの簡単な動きなら動かせるようになりました。
今は作っていませんけど。

私が勉強に使った本を紹介します。
C言語の本
「図解C言語 ポインタの極意」
「新版 明解C言語 入門編」

C++言語の本
憂鬱なプログラマのためのオブジェクト指向開発講座

どのくらいC言語を理解しているか分かりませんけど、
分からないものが多く載っていて分かりやすい本を立ち読みをして、
探した方がいいと思います。

ゲームは2Dでしょうか?
それとも、3Dでしょうか?
3Dでしたら物理などが分からないと無理です。
物理の本(プログラムも載っています)
「ゲーム開発のための物理シミュレーション入門」

C++言語が分かれば、
「ゲームプログラマになる前に覚えておきたい技術」
がいいらしいです。

Q【VC++2005(CLR)】C++/CLIへのUNLHA32の導入、及び、lzh圧縮解凍の実行の仕方について

いつもお世話になっています。
VC++初心者です。

以前の質問と同様になってしまいますが、
再度質問させて頂きたいと思います。

やりたいことは、VC++2005(CLR)で
ボタンを押しすと、lzh圧縮、解凍するようにさせたいです。
↓こんなイメージです。
private: System::Void button_Form1_Click(System::Object^ sender, System::EventArgs^ e) {
  String^ strFileName = "aaa.txt"//ファイル名
  String^ strCompressFileName = "aaa.lzh"//圧縮されたファイル名
  //ここにlzh解凍(べつのボタンでlzh圧縮)をしたい
}
※先頭行に全角スペースを使用しています。


現在、他の方からアドバイスを頂いて、以下の状態まで来ました。
・UNLHA32をダウンロードしました。
 (格納先:C:\Program Files\ArchiverDll\UNLHA32)
・Form1.h内のボタンに実装するので、以下のコードを
 Form1.h内の「#pragma once」の下に追加しました。
#include "C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.H"
・LIBの追加ができていません。
 LIBの追加は、
 ・「ソリューションエクスプローラ」のプロジェクト名を右クリック
   し、「プロパティ」を選択。
 ・「構成プロパティ」-「リンカ」-「入力」をクリック。
 ・「追加の依存ファイル」に「C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.LIB」
   を記入。
 この時点で、エラーが発生しています。
(UNLHA32.LIBは上記の同フォルダにあります。)

このエラーの対処、及び、これからすべきことを
ご指導頂けませんでしょうか。

お手数ですが、よろしくお願い致します。

いつもお世話になっています。
VC++初心者です。

以前の質問と同様になってしまいますが、
再度質問させて頂きたいと思います。

やりたいことは、VC++2005(CLR)で
ボタンを押しすと、lzh圧縮、解凍するようにさせたいです。
↓こんなイメージです。
private: System::Void button_Form1_Click(System::Object^ sender, System::EventArgs^ e) {
  String^ strFileName = "aaa.txt"//ファイル名
  String^ strCompressFileName = "aaa.lzh"//圧縮されたファイル名
  //ここにlzh解凍(べつのボ...続きを読む

Aベストアンサー

 こんにちは。補足頂きました。

 ・「ソリューションエクスプローラ」のプロジェクト名を右クリックし、「プロパティ」を選択。
 ・「構成プロパティ」-「リンカ」-「入力」をクリック。
 ・「追加の依存ファイル」に「C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.LIB」

 の手順で追加した「C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.LIB」のパスを「追加の依存ファイル」から削除して見て下さい(初期状態に戻すと言う事)。
 その後、「ソリューションのリビルド」で出来ませんか。

QC言語でプログラムを再起動

 UNIXで動くC言語のプログラムを作っています。
 その際、プログラムを再起動させたい時があります。
 しかし、C言語でプログラムを再起動させるってどうやればいいのかよくわかりません。
 何かよいやり方を知っている方、教えてください。
 よろしくお願いします。

Aベストアンサー

関数execl()を使えばよいと思います。
この関数は、fork()と組み合わせて、他のプログラムを
起動するのに使うのが普通ですが、
fork()せずにexecl()を呼ぶと、自プロセスを指定された
プログラムに置き換えます。ですので、ここで自分自身を
指定すれば、再起動したことになるはずです。

QVisual Studio 2005 C++で作成したプログラムが98で動くか

XP上のVisual Studio 2005 C++で作成したプログラム
はWindows 98上で動作するでしょうか?

Aベストアンサー

作り方による。

Windows98で動かないライブラリーや
そもそも動作に必要なライブラリーがない状態だと
動かないでしょう。

とくにクロスコンパイルするときなんか

QC言語でゲーム作り

フリーゲームに影響され、自分も作ってみたいと思いC言語勉強し始めました
趣味の範囲で、こつこつ頑張っていこうと思ってます

今現在、C言語の初初心者向けの本を一通り読み終えて次の本を読んでます
一応、一つの目標としてアクションゲーム(マリオみたいな)を作りたいんですが
C言語の他にどんなこと勉強すればいいでしょうか?

あと、C言語から次のステップに移るときは
やはり上級者向けの本は理解できるくらいまで頑張ってからでしょうか?

Aベストアンサー

とりあえずCだけではなく、C++まで一通り学習することをお勧めします。
PCゲームなのかどうか、Windows上のものなのかどうかわかりませんが、C/C++系の場合は、C++使っていることが多いので、C++知っているのと知らないのとでは、サンプルだとかライブラリとか理解できないかもしれないので。

仮にWindowsアプリだとして、API叩いてGDIで描画するか、DirectXを使うかというところもありますね。
2Dの横スクロールならGDIでも可能でしょうけど、後々のことを考えるとDirectX使えるように勉強したほうが、楽だしいろいろなことができるようになります。
DirectXはC++なので、やはりC++になります。

ちょっと戻ってしまいますが、Windowsアプリを作るのであれば、CやC++言語だけではだめで、WindowsAPIを使う必要があります。
まぁ一種のライブラリだと思えばよいですけど。

とりあえず、C/C++の入門書を一通りみて、どのような文法や制約などがあるか理解し(覚えなくてOK)、実際のサンプルソースなどをいじったり改良したりして実際の動作を見ていくのがよろしいかと。
コンソールでのC/C++がある程度わかってきたら、WindowsAPIやDirectXなどの入門書を見ていくといいのではないかとおもいます

とりあえずCだけではなく、C++まで一通り学習することをお勧めします。
PCゲームなのかどうか、Windows上のものなのかどうかわかりませんが、C/C++系の場合は、C++使っていることが多いので、C++知っているのと知らないのとでは、サンプルだとかライブラリとか理解できないかもしれないので。

仮にWindowsアプリだとして、API叩いてGDIで描画するか、DirectXを使うかというところもありますね。
2Dの横スクロールならGDIでも可能でしょうけど、後々のことを考えるとDirectX使えるように勉強したほうが、楽だ...続きを読む

Q【C++/CLI】 gcnewしたオブジェクトのスコープ

 お世話になります。

 以下のようなソースを書いた場合の、内側のブロックでgcnewしたオブジェクトのスコープ(生存期間)について質問させてください。


value struct STRA
{
 String ^str;
};

int _tmain(int argc, _TCHAR* argv[])
{
 ArrayList ^ar = gcnew ArrayList();
 IEnumerator ^en;

 {
  ArrayList ^ar2 = gcnew ArrayList();
  STRA ^strA = gcnew STRA;
  strA->str = gcnew String("TEST");

  ar2->Add(strA);
  ar = ar2;
}

 en = ar->GetEnumerator();
 en->MoveNext();
 STRA ^strB = safe_cast<STRA>(en->Current);

 return 0;
}

 内側のブロックにて、「ar = ar2」の時点でar2にAddされたオブジェクトのアドレスが入っているようのですが、その後ブロックを抜けた後でもarを通じて内側のブロックで生成したのオブジェクト(strA)の値を見ることができます。
 これは、たまたまガベージコレクトがまだ働いていないためであって、やはり基本的にはブロック内で生成されたオブジェクトをブロックの外で見るべきではない、と考えたほうがよいのでしょうか。

 やはり「ar = ar2」のようにするのではなく、ar2にAddされたオブジェクトをar1に再びAddしていったほうが無難でしょうか。


 何卒ご教示をお願いいたします。

 お世話になります。

 以下のようなソースを書いた場合の、内側のブロックでgcnewしたオブジェクトのスコープ(生存期間)について質問させてください。


value struct STRA
{
 String ^str;
};

int _tmain(int argc, _TCHAR* argv[])
{
 ArrayList ^ar = gcnew ArrayList();
 IEnumerator ^en;

 {
  ArrayList ^ar2 = gcnew ArrayList();
  STRA ^strA = gcnew STRA;
  strA->str = gcnew String("TEST");

  ar2->Add(strA);
  ar = ar2;
}

 en = ar->GetEnume...続きを読む

Aベストアンサー

C++/CLI については、文法について軽くチェックした程度ですが、オブジェクト指向的にはC#と同じだと思いますので、回答します。

スコープを外れるとar2にアクセスできなくなるのはその通りです。が、それはar2という変数の話であって、ar2の指していたオブジェクトとは関係がありません。
この場合は、「もともとar2が指していたものは、arを通して参照しても良い」んです。

勘違いがあると思われるポイントは、gcnewなりnewなりするところ。たとえば
 ArrayList ^ar = gcnew ArrayList();
とあったら、これは、
・arという、ArrayListへの参照(ごめんなさい、CLI用語知らないのでここは不正確です)を宣言する
・gcnew ArrayList()により、新しいArrayListオブジェクトを作成する
・作成したオブジェクト へ の 参 照 を、arにおさめる
と言うことをしています。
作成した新しいオブジェクトはオブジェクト、変数arに入っているのはそのオブジェクトへ至る道でしかないわけです。
道がなくなったオブジェクトがGCの対象になります。
オブジェクトは色んな変数から参照されても構いませんし、元々参照していた変数とはたいした関係がありません。

変数とオブジェクトとの区別さえつければ、あとは簡単に分かるはずです。

ar = ar2 とコピーをした場合でも、ここで行われているのは
・ar2におさめられた「オブジェクトへの参照」をarに入れる
ことだけです。局所変数として宣言されているar2が失われたあとも、ar2が指していた先のオブジェクトは、今度はarが指し示していることになります。従ってそのオブジェクトのGCは行われません。

逆に、前にarに入っていたオブジェクトは、arから指し示されなくなりましたので、GCの対象になります。

簡単にまとめると、
 ・スコープは変数名についての話
 ・変数とオブジェクトは別物
 ・変数はオブジェクトを指し示しているだけ
 ・指し示している変数がなくなるとオブジェクトはGCの対象にされる
ということです。

とても良い疑問だと思います。がんばってください。

C++/CLI については、文法について軽くチェックした程度ですが、オブジェクト指向的にはC#と同じだと思いますので、回答します。

スコープを外れるとar2にアクセスできなくなるのはその通りです。が、それはar2という変数の話であって、ar2の指していたオブジェクトとは関係がありません。
この場合は、「もともとar2が指していたものは、arを通して参照しても良い」んです。

勘違いがあると思われるポイントは、gcnewなりnewなりするところ。たとえば
 ArrayList ^ar = gcnew ArrayList();
とあったら...続きを読む

QC言語のプログラム集

こんにちは。C言語のテキストにはプログラムとその説明が書いていますが、
このC言語のプログラムが多くのっているような本はありますか?本屋さんで探したのですが、プログラムがものすごく多くのっているようなものがなかったので、もしお分かりの方がおられましたが、本の紹介をお願いします。

Aベストアンサー

C言語ということでどうしても古い本になってしまいますが
下記URLのような本はどうでしょうか。
http://oku.edu.mie-u.ac.jp/~okumura/algo/
http://www.amazon.co.jp/%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%A1%E3%83%AA%E3%82%AB%E3%83%AB%E3%83%AC%E3%82%B7%E3%83%94%E3%83%BB%E3%82%A4%E3%83%B3%E3%83%BB%E3%82%B7%E3%83%BC-%E6%97%A5%E6%9C%AC%E8%AA%9E%E7%89%88%E2%80%95C%E8%A8%80%E8%AA%9E%E3%81%AB%E3%82%88%E3%82%8B%E6%95%B0%E5%80%A4%E8%A8%88%E7%AE%97%E3%81%AE%E3%83%AC%E3%82%B7%E3%83%94-William-H-Press/dp/4874085601

ご参考になれば幸いです。

QVisual C++ と Visual C++ Express Edition

の違いについて教えてください。
ExpressでもMDIを作成できるのでしょうか?

Aベストアンサー

「Express Edition」には、大雑把にリソースエディタとMFCが付いていません。あとインストーラ作成機能が無かったかな?細かな違いはだいぶありますけど。
WindowsAPIやC++/CLIを使う分には、ほぼ同等にプログラムを作る事ができます。
MDIももちろん作れますよ。

「猫でもわかるプログラミング」
http://www.kumei.ne.jp/c_lang/
のようにリソースエディタやクラスウィザードを使わない作り方をする分には、ほぼ差が無いと思います。


人気Q&Aランキング