- PR -

Visual C++ 2005 Express Edition で MFC の Windows Application を作成したい

投票結果総投票数:14
簡単に可能 5 35.71%
コツはいるが可能 2 14.29%
相当頑張れば可能 2 14.29%
やろうと思えば不可能というものはない 5 35.71%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2007-05-19 20:24
ケチくさい話になりますが、
Microsoft Visual C++ 2005 Express Edition
を使って MFC の Windows Application を作成したいのですが、可能でしょうか?
(有償版を使わずに無償版だけで実現したい。)

いまさら新規に MFC を使ったアプリケーションを作りたいわけではないのですが、世間のなにがしかのサンプルコードは MFC を使っていることが多く、そういうサンプルコードをそのまますぐにコンパイルして動かせるとうれしいのですが。

過去の投稿である「VC++2005」 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=27092&forum=7 も見ましたが、たしかに自分でも MFC を使わないただの Windows Application は作成できましたが、MFC の Windows Application はコンパイルはできるもののリンクの段階でライブラリーファイルがなくてダメでした。
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-05-19 21:57
簡単に可能ですよ。IA64版のマシンを用意して、2003〜2004年頃のPlatformSDK を持ってくればw

ただ、VS買っちゃった方が安く上がるとは思いますが。。。w

元々、MFC はマイクロソフトが有償で提供しているフレームワークです。

勘違いしてるみたいですが、過去一度も無償提供されたことはありません。
PlatfromSDK についてるものがあるのでは?とおもわれているとおもいますが
あれは、再配布可能にはなっていません。

結果的に一番安くつくのは、Standard Editionを買ってくることですね。
他のもろもろと一緒に、MFC を使う権利も購入できますのでw

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2007-05-19 22:44
引用:

とっちゃんさんの書き込み (2007-05-19 21:57) より:
勘違いしてるみたいですが、過去一度も無償提供されたことはありません。
PlatfromSDK についてるものがあるのでは?とおもわれているとおもいますが
あれは、再配布可能にはなっていません。


情報ありがとうございます。条件を明示し忘れたのですが、入手したサンプルコードを自分で動かせればそれでよいので、再配布できなくても構いません。
Platform SDK の中に MFC のインクルードファイルはあってコンパイルはできるのですが、32 ビット用の MFC の lib ファイルがないのでリンクだけができません。

リンクだけできないんですよ。リンカー用の情報だけ引ければそれでいいと思うのですが、Microsoft がそれを許してくれないのはなぜなんでしょう。MFC 自体のソースコードらしきものならあるみたいなのですが、ビルドの方法が良く分かりません。ソースコードを付けてくれるのならば、lib ファイルを付けてほしいです。

64ビット用の lib ファイルはあるみたいなのですが、これは、64ビットマシンを買え、という Microsoft のお告げなのでしょうか。

--
unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86}
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-05-19 23:24
引用:

unibonさんの書き込み (2007-05-19 22:44) より:

リンクだけできないんですよ。リンカー用の情報だけ引ければそれでいいと思うのですが、Microsoft がそれを許してくれないのはなぜなんでしょう。MFC 自体のソースコードらしきものならあるみたいなのですが、ビルドの方法が良く分かりません。ソースコードを付けてくれるのならば、lib ファイルを付けてほしいです。

64ビット用の lib ファイルはあるみたいなのですが、これは、64ビットマシンを買え、という Microsoft のお告げなのでしょうか。



PlatformSDK のドキュメントにそのあたりのことは書かれてます。英語ではありますがw

利用する上での注意事項等々も書かれています。無償=勝手に使っていいではありませんので、一度ちゃんとお読みになることをお勧めします。

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
Blue
大ベテラン
会議室デビュー日: 2005/09/12
投稿数: 230
お住まい・勤務地: 知っている人は知っている
投稿日時: 2007-05-20 01:18
投票の選択肢に「不可能である」はないのであろうか?
(全部できるというようにしか回答できない気がする。)
# >やろうと思えば不可能というものはない
# はどういうことか良くわからなかった。

類似スレです。
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200601/06010046.txt
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=322345&SiteID=7
以前私もやってみてリンクエラーでできないってとこまでいきました。

しかも、Platfrom SDKのMFCのソースは古いバージョンだと聞きました。
(Platform SDKと整合が取れているかは知らない。)


Expressを入れてStandard以上にアップグレードするのがいちばん安上がり
なんじゃないかとは思います。

[ メッセージ編集済み 編集者: Blue 編集日時 2007-05-20 01:25 ]
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-05-21 12:24
引用:

Blueさんの書き込み (2007-05-20 01:18) より:

しかも、Platfrom SDKのMFCのソースは古いバージョンだと聞きました。
(Platform SDKと整合が取れているかは知らない。)


PlatfromSDK に含まれてるのは、VC6 の64bitリメイクスペシャルバージョンですね。
どこかのヘッダーに _MFC_VER ってのがあるので確認できます。

どの程度まで手入れされてるかは、不明です。既にSDK自体が、古いモノ扱いですしww<PlatformSDK

で、ビルドですが、確か 64bit用のmakeがあったと思うので、それをゴニョゴニョすればw
って誰だか知らないけど、できたと言ってる人もいるのねw

まぁ、あれだけのソース数ですからね。可能と出来るにはかなりの隔たりが...w
出来るようになればそれなりの勉強にはなるでしょうけどww
#おいらはそこまでフォローできねーですがww

あー。そのかわり、Vista での動作は保証外です。Vista で動かすアプリを作りたいなら、WindowsSDKを使いなさいと言うのがSDK側の言い分ですのでw

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2007-05-21 16:04
引用:

Blueさんの書き込み (2007-05-20 01:18) より:
投票の選択肢に「不可能である」はないのであろうか?
(全部できるというようにしか回答できない気がする。)
# >やろうと思えば不可能というものはない
# はどういうことか良くわからなかった。


「しにものぐるいでやれば可能」という意味です。ビルゲイツに直訴したり、最悪、Microsoft を買収する等です。

少なくとも MFC のヘッダーファイルはあるから、それさえあれば lib ファイル(mfc42.lib)に相当するものは、自分で構築できるはずですよね?呼ばれる先の実体のコードは mfc42.dll にあり、その dll ファイルは、普通、Windows の環境があれば存在していますよね?
それとも、これらのことだけでは足りないのでしたっけ?最近、C/C++ を触ったことがないので、忘れてしまいました。
ん?やはり、これだけでは足りないのでしょうか?序数が分からないかも?

引用:

とっちゃんさんの書き込み (2007-05-21 12:24) より:
どの程度まで手入れされてるかは、不明です。既にSDK自体が、古いモノ扱いですしww<PlatformSDK


目的としては、C# からチョコチョコっとなんらかの API を呼びたいのですが、API の使い方が良く分からないので、ネットで検索してサンプルプログラムをダウンロードして来ます。そのサンプルプログラムで、目的とする API をデバッガー上で呼べて動きが見られればそれで良いので、MFC の新旧の互換性やセキュリティーの脆弱性などは気にしません。が、それらの多くは Window を作るためだけぐらいなのに MFC を使っているので、わざわざ MFC を使わないようにコードを手直ししないといけないのが面倒なのです。Standard Edition を使えばいいのでしょうが、Express Edition でできるのならばそれで済ませたいのです。

--
unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86}
Blue
大ベテラン
会議室デビュー日: 2005/09/12
投稿数: 230
お住まい・勤務地: 知っている人は知っている
投稿日時: 2007-05-21 16:12
MFCというか、クラス自体をエクスポートしている場合、序数が云々という
話では解決できない気がします。
(LoadLibraryでは解決できない。)

引用:
目的としては、C# からチョコチョコっとなんらかの API を呼びたいのですが、API の使い方が良く分からないので、ネットで検索してサンプルプログラムをダウンロードして来ます。

APIを使うのになぜMFCが必要になるのであろうか?

スキルアップ/キャリアアップ(JOB@IT)