Microsoft Visual Studio 2005 Team Suiteを利用しています。 Visual C++で、.net Frameworkが入っていないWindows上でも動作するネイティブアプリケーションを開発するための手順を教えてください。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2007/12/15 18:25:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:thrillseeker No.1

回答回数328ベストアンサー獲得回数37

ポイント35pt

新規にプロジェクトを作成する時に、「MFCアプリケーション」を指定すればOKです。

http://pub.nikkan.co.jp/mgz/sekkei/zsek06120_036.pdf

id:ymlab

回答ありがとうございます。

MFCアプリケーションを指定したらネイティブで動くのでしょうか・・・。

実際に以前MFCで開発した時はできませんでした。

Win32APIだけで作った場合は無理なのでしょうか。

2007/12/08 22:50:09
id:t_shiono No.2

回答回数256ベストアンサー獲得回数22

ポイント35pt

「ネイティブアプリケーション」の意味をどのように考えているかによるのですが、CLRを利用しないプロジェクト(Win32やMFC)はネイティブアプリケーションのプロジェクトとなります。

ちょっと小難しい言い方をすると、アプリケーションはOSに対して処理を命令することで実現されます。

その命令の仕方が色々あります。


大雑把に言うと、次のようになります。

○Win32の場合

アプリケーション - Win32 API - Windows

○MFCの場合

アプリケーション - MFC - Win32 API - Windows

○CLRを利用する場合

アプリケーション - .NET Framework - (?) - Windows

※?の部分は調べてないです。


そのため、CLRを利用する場合は、.NET Frameworkで解釈される実行コードとなります。

その意味から、前者2つは.NET Frameworkがなくても動作する、すなわち、ネイティブコードと呼べるのですが、MFCアプリケーションが動作するためには、そのためのライブラリが必要となります。

恐らく、このライブラリがなかったために、以前に作成した際は動かなかったのではないでしょうか?(想像ですが)


MFCのアプリケーションをどこへ(Vista除く)持っていっても動作させるためには、

Win32プロジェクトで開発する

または、

MFCプロジェクトで開発し、静的リンクをする

または、

MFCプロジェクトで開発し、ランタイムDLLをセットで配布する

のいずれかが必要となります。

※アプリケーションの動作の中で必要なライブラリなどがあれば、さらに工夫が必要となります。


Team Suiteで試した訳ではないのですが、何かの参考になれば。

id:ymlab

回答ありがとうございました。

私の場合は、静的リンクをしていなかったのでしょうか・・・。

また、確認してみたいと思います。

ありがとうございました。

2007/12/14 21:42:48
  • id:cx20
    参考情報です。

    MFC DLL を使用しているかどうか?は「Dependency Walker」を使って確認することができます。

    ■ Dependency Walker (depends.exe) Home Page
    http://www.dependencywalker.com/
    ■ Visual C++ アプリケーションの依存関係の理解
    http://msdn2.microsoft.com/ja-jp/library/ms235265(VS.80).aspx
  • id:ymlab
    コメントありがとうございます。
    早速見てみます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません