none
VS2012のVC++でのwindowsフォームアプリケーションの作り方 RRS feed

  • 質問

  • みなさんこんばんわ、いつも参考にさせてもらっています。今回は初投稿になります。いろいろ言葉足らずの部分があると思いますがよろしくお願いします。

    今日、VS2012をインストールし、VC++でwindowsフォームアプリケーションを作ろうと思い、「新しいプロジェクト」から「テンプレート」→「CLR」でwindowsフォームアプリケーションの順を選択しようとしたところ、テンプレートの中にwindowsフォームアプリケーションがありませんでした。MSDNのヘルプを見てもwindowsフォームアプリケーションを選択して作るといった記述はあります。「既定のプロジェクトテンプレートの復元」を試してもだめで、VS2012の再インストールをしてもだめでした。これは元々の仕様でしょうか?。私以外でVS2012をインストールされた方はどうでしょうか?WEBでいろいろ検索してみましたが解決できませんでした。わかる方がいらっしゃいましたらご教授をお願いします。

    環境:PC:自作PC、OS:Windows7,Visual Studio Prpfessional 2012 Version 11.0.50727.1 RTMREL

    2012年9月6日 13:50

回答

すべての返信

  • サポートされていません。
    開発チームとしても、C++/CLI で UI を作ることは推奨しないスタンスのようです。

    http://connect.microsoft.com/VisualStudio/feedback/details/747648/no-windows-forms-aplication-project-template-for-c-in-vs2012-rc-ultimate
    C++/CLI is a great solution for interop, but we do not recommend creating brand new UI applications using C++/CLI.

    どうしても必要であれば、VS2010 かそれ以前でプロジェクトを作成し、VS2012 に移行してください。
    可能であれば、UI は別の言語で作るか、Windows Forms を使わないプロジェクトを検討してください。

    2012年9月6日 15:12
    モデレータ
  • Azuleanさん、早速のご回答ありがとうございます。

    貼り付けて頂いたリンク先を見ましたが、サポートされていないみたいですね。

    VS2010ではC++/CLIはインテリセンスがサポートされず、今回はこれですか・・・。C++/CLIはあまり人気が無いのかな?

    対応として、とりあえず、VS2010でWindowsフォームアプリケーションでプロジェクトを作成して、そのプロジェクトをVS2012で開き、「ファイル(F)」→「テンプレートのエクスポート」でプロジェクトのテンプレートを作成して対応しました。プロジェクトテンプレートの作成方法はネットで調べると何かソースコードを修正する必要がある様な記述があったりもしましたが、上記の方法で作成してもとりあえず影響はなさそうなのでこれでいこうと思います。

    2012年9月7日 9:07
  • C++/CLIはあまり人気が無いのかな?

    UI を作るという観点では、個人的には C# を推しますね。
    サンプルやツール類は C++/CLI よりも遙かに C# の方が充実していますので。

    過去の資産を活かすとか、演算処理を高速化するために部分的に使うとか、Intel IPP を使うとか、そういった場面でのみ C++/CLI を使っています。

    上記の方法で作成してもとりあえず影響はなさそうなのでこれでいこうと思います。

    考えられるリスクということで書き残しておきます。

    C++/CLI での UI サポートは積極的な投資をされていないのではないかと思っています。実際、「we do not recommend」と公に言っている状況なので、その道がいずれ閉ざされる(デザイナーのサポートがなくなる)恐れもあるかもしれません。
    あくまで可能性(リスク)に過ぎないので、使っていく判断をするか、使わない判断をするかは各自・各組織で考えていくことになります。

    • 回答としてマーク Nissy357 2012年9月9日 8:12
    • 回答としてマークされていない Nissy357 2012年9月9日 8:12
    2012年9月7日 16:24
    モデレータ
  • Azuleanさん、ご意見ありがとうございます。

    私は仕事ではVB,VBA,JavaScriptを使用していて、C++/CLIは趣味のプログラミングで使っています。仕事ではC#やC++/CLIを使うことはきっと無いとは思っていますが、自分のスキルアップの為にも、C#をこの機会に勉強していこうと思います。

    2012年9月9日 8:32
  • OpenCVとOpenGLとWindowsFormとを組み合わせたアプリを作っています。そのためにわざわざVBからC++/CLIに乗り換えましたVS2005のころの話です。ここしばらくはその仕事から離れていて、戻ってこようとしたら、なんか完全に取り残された感じです。VC2010でIntelliSenceが対応しなくなったのでヤバいなあとは思っていましたが・・・いまからMFCもちょっと違う感じがするし・・これからそういうアプリを作っていくにはどうすればいいのでしょうか?Microsoftさん教えて・・・。C#やVBからOpenCVやOpenGLを呼び出すのってラッパー使ったりとか面倒そうですよね。また勉強しなおすのも面倒なだなあ。Microsoftはどこへ向かっているのでしょうか?
    2013年3月26日 11:53
  • 1つ言えるとすれば、Microsoft の考えをこの場で聞くことはできません。
    現地の社員が活動しているようなコミュニティで 英語を使って 聞いてみるとかしないとそういった情報は得られないと思われます。

    前にも書いたこととかぶるのですが、外野の私個人が思うところとしては、C++/CLI は C や C++ のネイティブ資産と、C# や VB.NET などのマネージ資産との仲介が主な役割で、そういった立ち位置でしか投資されないと思われます。
    また、ストアアプリを推していきたい、一歩譲っても WPF という世界を用意した現状では、Windows Forms 向けに大きな投資を期待しづらいと考えています。
    この2つの面から、C++/CLI & Windows Forms という選択肢は、将来性がないものととらえておくのが妥当ではないでしょうか。

    2013年3月26日 14:41
    モデレータ
  • ネイティブC/C++言語に戻られたらいかがでしょう。

    C#、VB言語本体の大半はネイティブC/C++言語で書かざるえないので、
    それらが失われてもネイティブC/C++は原理的に最後まで生き残ると考えられます。
    C++/CLIの例がある以上、これはありえない想定とはいえません(J++ってのもあるし)。

    さらにありえない妄想をめぐらせると、例えば今日Microsoftに死亡フラグ立った場合、
    大げさに言えば、C#、VBの技術者は明日から仕事がなくなると考えられます。
    一方、C/C++技術者には特に問題は発生しないのではないでしょうか。

    個人的には、C++言語やJava言語などが前提としている、オブジェクト指向について
    十分な技術と知識を身に着けることが、ここ10年以内では肝要と考えています。
    しばらく、このトレンドは変わらないでしょう。

    2013年3月27日 1:04
  • Azuleanさま

     ご意見ありがとうございます。 こんなに早くレスいただけるとは思っていなかったので感激です。

    >Microsoft の考えをこの場で聞くことはできません。

    そうなんですね。このサイトの使い方を教えてくださりありがとうございます。

    当方少人数開発をしているので、マネージドなWindowsFormでGUI部はある意味楽をして、画像処理、3次元計算、結果図示等に注力してよりやりたいことをできるだけ早く実現したかったのでC++/CLIは光明のように感じていました。WPFもストアアプリもOpenGLやOpenCVにはあまり親和性がなさそうですね・・。新人君にあの言語も、この言語もって要求しても、モノになるのは何時の事やら(私もそうですが(汗))・・・・なのでとても残念です。

    当方もしばらくは >上記の方法で作成してもとりあえず影響はなさそうなのでこれでいこうと思います。 に賛同するか、もしくは、VS2008開発にとどまることになるでしょう。

    仲澤さま

      ご意見ありがとうございます。 返信下さり感激です。

    >ネイティブC/C++言語に戻られたらいかがでしょう。…(中略)…オブジェクト指向について十分な技術と知識を身に着けることが…(後略)

    私も、C++やオブジェクト指向はしばらく廃れないとおもいます。 OpenCVとOpenGLだけならネイティブC/C++でいいとおもいます。ただC++でGUIのところが迷いどころです。GUIライブラリもGPLのは不都合だし、いまからwin32でGUIを書き始めるのは、商売をたたむに等しいかも…。 戻るというほどC/C++をやっていたわけでなく、どちらかというとVBの方が実績が多いのは自分を呪うしかないですね(滝汗)。

     お二人ともありがとうございました。

    2013年3月27日 13:22