• ベストアンサー

VC#2005で従来のWinアプリを作成するには?

Windows2000pro-sp4,VC#2005 Express Edtionを使用しています。 VS6の頃のような従来のWindowsアプリを作成するにはどうすればよいのでしょうか? メニューから、ビルド→...の発行、とたどり、 アプリの発行場所にデスクトップを選んで完了しても、 従来のように.exeファイルが作成されのではなく、 setup.exeや*.exe.manifest,.exe.deploy,.application などが作成されます。 古い記憶では、.NETな環境では、VC++のみが従来のようなWinアプリが作れる、 とあるのですが、そうなのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

基本的にはVC#で従来のWindowsアプリを作ることはできませんが、一つだけ方法があります。 それは、C#でEXEファイル生成するプログラムを開発し、それを用いて従来のWindowsアプリを作る方法です。 早い話が、アセンブラ(またはコンパイラ)とリンカ、あるいはコードジェネレータをC#で自作するしかないということです。この方法なら、極端な話、PerlやRubyやTclでもネイティブコードを生成できます。

bolaiskeok
質問者

お礼

レスありがとうございます。 そういう手もありますね。ですが相当高度で広範なしかもハード側の知識が必要そうですね。 もしよろしければぜひポインタを示して欲しいのですが、 コンパイラに関して、字句解析だとか解析結果をツリーにセットするだとかそういった方面ではなくて、アセンブラのコードを吐く部分に関する知識が欲しいのですが、 たとえば旧VC++にしてもCLR上で動くVC++.NETにしても、最終的にはアセンブラのコードになっているのですよね? ところが単純にメッセージボックスを開くだけのプログラムであっても、それをアセンブラに変換する方法が見当もつきません。 アセンブラの本はたくさん見つかるのですが、 アセンブラのみでなく、Windowsアプリケーションとの関わりまで言及された参考書籍等ありますでしょうか?

その他の回答 (2)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

> ですが相当高度で広範なしかもハード側の知識が必要そうですね。 CPUの知識は必要でしょうが、それ以外のハードの知識は特に必要ないでしょう。ペリフェラルの部分はWindowsのAPIを呼び出せば済んでしまいますので。 > たとえば旧VC++にしてもCLR上で動くVC++.NETにしても、最終的にはアセンブラのコードになっているのですよね? ネイティブコンパイラの場合は、最終的には機械語に翻訳されます。CLRの場合は機械語に直接翻訳されるのではなく、CLRが理解できるコードになるだけです。 EXEファイルの作り方についてはあまりよい資料が見当たらなかったのですが、VBでEXEファイルを生成するサンプルが見つかりましたので、参考に挙げておきます。

参考URL:
http://nienie.com/~masapico/doc_MakeExe.html
bolaiskeok
質問者

お礼

じっくり解析してみます。 わざわざリンクを下さり、ありがとうございます!

回答No.1

C++.NETを使いましょう。

bolaiskeok
質問者

お礼

C++.NETのExpress Edtionをインストールしました。 これで練習することにします。 ありがとうございました。

関連するQ&A