コンテンツにスキップ

Microsoft Foundation Class

Xuất điển: フリー bách khoa sự điển 『ウィキペディア ( Wikipedia ) 』

Microsoft Foundation Class(MFC) は,マイクロソフトVisual C++Dụng に khai phát した,WindowsDụng のアプリケーションソフトウェアCấu trúc のためのアプリケーションフレームワーク(クラスライブラリ) である.Active Template Library(ATL) と đồng dạng に,Visual Studioに đồng khổn されるライブラリとなっている.

ATL/MFCはもともと hữu thường エディションのVisual C++単 thể chế phẩm や, hữu thường エディションのVisual Studio chế phẩm のみに đồng khổn されていたが, Visual Studio Communityエディションでは ( ライセンス điều kiện が nghiêm しくなっているものの ) vô thường でATL/MFCを lợi dụng できる.

Khái yếu[Biên tập]

MFCでは, Windowsアプリケーションにおけるメッセージハンドラやウィンドウフレームワークなどの cơ sở đích な bộ phân をあらかじめパッケージ hóa したほか,GDIオブジェクト, デバイス コンテキスト,スレッド,ソケット,FTP/HTTPなどのインターネットサービス, khả 変 trường のVăn tự liệt,Phối liệtリストといったコンテナなど, nhất bàn にアプリケーションでよく sử われるようなクラスを bị えている.

SDKを sử ってWindows APIを trực tiếp hô び xuất すのに bỉ べ, Visual C++の thống hợp hoàn cảnh との thân hòa tính が cao く khai phát が dung dịch になるという lợi điểm があるが, nhất phương でMFCに quá độ に y tồn したプログラムを thư くと tha のオペレーティングシステム(OS) へのDi thựcが nan しくなるといった vấn đề もある.

MFCに tự たライブラリとしては,Windows Template Library(WTL) がある.

Lịch sử[Biên tập]

MFCは1992 niên,16ビットバージョンのWindowsをターゲットとし, マイクロソフトのC/C++コンパイラ7.0とともに phát mại された. これは khai phát ツールの phân dã におけるシェアを cao めようとしていたマイクロソフトの nỗ lực の nhất hoàn であり, MFCはプログラミング ngôn ngữ C++の năng lực を tri らしめるよう thiết kế されていた. Đương thời, C++は thương dụng アプリケーションの khai phát においてCからの di hành が thủy まったばかりであり, C/C++ 7.0はマイクロソフトのコンパイラとして sơ めてC++をサポートした. MFCはMacintoshThink Class Library(Anh ngữ bản)( TCL, hậu にシマンテックによって mãi thâu された ) に đại きく ảnh hưởng を thụ け, その cấu tạo の đa くをTCLから thụ け継いでいた.

Đồng thời kỳ, Borland Cコンパイラに đối ứng したObject Windows Library(Anh ngữ bản)(OWL) が, cạnh hợp chế phẩm としてボーランドから phiến mại されていた. OWLの thiết kế はより nghiêm mật にオブジェクト chỉ hướngに chuẩn じていたので, nhất thời kỳ の gian MFCよりも hảo bình であった. しかし, Windowsへの cơ năng truy gia とOWLのアップデートに thời gian soa が sinh じてしまったので, OWLはシェアを thất った.

Visual C++ 4.2においてWinInet(Anh ngữ bản)およびActiveXなどのインターネット quan liên のクラスが truy gia された hậu は, MFC tự thể に đặc に đại きな変 hóa がなく, Visual C++ 7.0 (Visual C++.NET 2002) においてMFCとATLの nhất bộ が thống hợp された trình độ にとどまっていたが, Visual C++ 2008 (Visual Studio 2008) へのサービスパック1 thích dụng thời にインストールされる “MFC Feature Pack” において, MFCは đại phúc な tiến hóa を toại げている. Cụ thể đích には,Office2007 phong のリボン インターフェイスを cấu trúc するための "CMFCRibbon〜" で thủy まる danh tiền を trì つクラスや, Visual Studio 2005 phong のスマート ドッキング ウィンドウを thật hiện するCDockablePaneクラスなど, 100 dĩ thượng のクラスが truy gia されている. これらのクラスを lợi dụng する tràng hợp, khai phát giả は cơ bổn đích に, Feature Packインストール hậu にMFCアプリケーション ウィザードに truy gia されるリボンUIあるいはVisual Studio UIのテンプレートを tuyển 択して, tự động sinh thành されるフレームワークをベースにしてコーディングしていくことになる. ただし.NET Frameworkによる khai phát とは dị なり,RADではなくコードベースでGUIを cấu trúc する tất yếu があるため, これらのクラスを sử いこなすにはMFCプログラミングに tinh thông していることが tiền đề となる. なお, Windows 7 SDK (Windows SDK for Windows 7 and.NET Framework 3.5 SP1) にもリボン インターフェイスを thật trang するための “リボン フレームワーク” と hô ばれるAPI quần が truy gia されているが, thật chất đích にCOMコンポーネントを lợi dụng したAPIプログラミングであり, さらにリボン フレームワークのコンポーネントが đạo nhập されているのはWindows 7およびWindows VistaSP2 Platform Update dĩ hàng のOSであるため, ネイティブ (アンマネージ) のリボンUIアプリケーションの khai phát に quan しては, MFCの tuyển 択は hữu lực hầu bổ となり đắc る.

Visual C++ 2010 (Visual Studio 2010) においては, リボンUIを thị 覚 đích に biên tập する cơ năng ( リボン デザイナー )[1]がリソース エディタに truy gia されたほか,Windows VistaDĩ hàng のOSに thật trang されている “タスク ダイアログ” や “Tái khởi động マネージャー” などを lợi dụng するための cơ năng も truy gia されている[2].CaoDPIHoàn cảnh にも tiêu chuẩn đối ứng するようになった ( System DPI Aware )[3].また, Visual C++ 2010へのサービスパック1 thích dụng hậu[4]は,Direct2D[5]ラッパー[6]およびWindows Animation Manager[7]ラッパー[8]の cơ năng ( クラス ライブラリ ) が truy gia される.

Visual C++ 2015では động đích レイアウトにも đối ứng する[9]など,.NET Frameworkとはまた vi った phương hướng の cơ năng 拡 trương が続けられている.

Sĩ dạng[Biên tập]

MFCが phát mại された thời, マイクロソフトはマクロの hoạt dụng によってC++の văn pháp を拡 trương し, ウインドウメッセージ,Lệ ngoại 処 lý,Thật hành thời hình tình báo,クラスの động đích インスタンス hóa などを quản lý していた ( lệ ngoại 処 lý, thật hành thời hình tình báo などは đương thời のC++の ngôn ngữ sĩ dạng にも thật trang ( コンパイラ ) にも tồn tại しなかった ). ウインドウメッセージのために cấu văn に変 hóa を gia えたことは, bất yếu な仮 tưởng quan sổ テーブルの sử dụng を tị けることでメモリの tiêu phí lượng を ức える thư いがあった. さらに, cấu tạo がより cụ thể đích になり, Visual C++に phó chúc する đa dạng なツールがソースコード toàn thể を giải tích することなく処 lý できるという hiệu quả もあった. メッセージ処 lý のマクロは, C++の仮 tưởng quan sổ の đại わりとなった. ただ, nhất bộ のマクロはコンパイラによる hình チェックを vô hiệu hóa することがあるので, しばしばバグの nguyên nhân となった.

MFCを sử dụng することの chủ な lợi điểm は, Windows APIを lợi dụng したプログラム khai phát にオブジェクト chỉ hướng プログラミングモデルを đạo nhập するという điểm である. もう nhất つは, Windowsのリソースに quan liên した nhất bàn đích なデータ hình に đối するラッパーを đề cung するという điểm である. これらのラッパーを sử dụng することで, リソース quản lý オブジェクトのスコープを xuất た thời に tự động đích にリソースのハンドルを giải phóng させることなどができる (RAII). さらに, MFCはModel View Controllerモデルに cơ づいたアプリケーションを khai phát するためのドキュメント/ビューフレームワークを đề cung する.

マイクロソフトはC++ tiêu chuẩn hóa にあたって, đa trọng 継 thừa について phủ định đích な lập tràng をとっていた. MFCもその lý niệm に従い sơ kỳ のMFCは đa trọng 継 thừa を toàn く sử dụng しておらず, オブジェクトとしての cơ năng は cơ để クラスに, そして cụ thể đích な cơ năng の thật trang は単 thuần 継 thừa によって thật trang されている. これはオブジェクトが bất yếu なメンバによって phì đại hóa する sự が vô く, また bất tất yếu に tu sức されていないので cá 々のクラスを lý giải する sự が dung dịch になっている. しかし, nhất bộ のクラスは đa trọng 継 thừa ( より cận đại đích な thật trang ならばテンプレート ) によって thật trang されるべき vật も単 thuần 継 thừa によって thật trang されており, これらはThống hợp khai phát hoàn cảnhの chi viện なくしては tráp えない nan giải な vật になっている ( hậu thuật のCViewやCDocumentもこれに hàm まれる ).

MFCの chủ な khiếm điểm は, đa くのOSで lợi dụng できないという điểm である.MainsoftUNIXで lợi dụng khả năng なMFCツールを khai phát した[1].マイクロソフトは1990 niên đại にMacintoshに đối ứng したMFCを phiến mại していたが, それ dĩ hàng はMacintoshに đối するVisual Studioのサポートは trung chỉ された.

また, Visual C++のC/C++ライブラリと đồng dạng に, ライブラリのバージョンごとにメモリ quản lý が dị なるため, hỗ いに dị なるバージョンのMFCを sử dụng したEXE-DLLプログラム gian でDLLCảnh giới を việt えてMFCオブジェクト・CRTオブジェクトをやりとりできないなど, バージョン gian でのバイナリレベルの hỗ hoán tính が đê くなっている[10].そのため, cựu バージョンのMFCを sử って khai phát されたDLL ( MFC拡 trương DLL ) やスタティックライブラリを, tân バージョンのMFCアプリケーションでそのまま lợi dụng することは cơ bổn đích に bất khả năng ( その nghịch もまた nhiên り ) となっており, ソースコードからの tái ビルドが tất yếu となる. なお, phi MFCアプリケーションや, dị なるバージョンのMFCアプリケーションから, MFCを sử って thật trang したコードを thật hành する tràng hợp, MFC tiêu chuẩn DLLもしくはATL COMサーバーのプロジェクト hình thức を tuyển 択し, C ngôn ngữ quan sổ hình thức のインターフェイスやCOMインターフェイスを tác thành してアプリケーション trắc に công khai する tất yếu がある.

MFCはあくまでWindows APIのラッパークラス quần およびそれらを lợi dụng したフレームワークという vị trí phó けのため, sinh sản tính の điểm ではVisual BasicVisual C#,DelphiなどのRADツールに viễn く cập ばない. また, C++ ngôn ngữ の tập đắc は bỉ giác đích nan しい bộ loại に nhập るため, エンドユーザープログラミング (エンドユーザーコンピューティング) の quan điểm からも kính viễn されがちである. しかし, そういったいくつかの vấn đề điểm を bão えているにもかかわらず, MFCが vị だ đa くの xí nghiệp や cá nhân プログラマーに lợi dụng されているのは, thật hành tốc độ や động tác プラットフォーム, khai phát hoàn cảnh および khai phát ngôn ngữ の変 canh コストの vấn đề などで cựu lai のネイティブコード tư sản を hoàn toàn に.NETに di hành することが nan しく, またWindowsアプリケーションにおいて ngưng った cơ năng を thật trang しようとすると, Windows APIおよびCOMコンポーネントを trực tiếp thao tác するほうが khước って lặc であることが đa く, これらと thân hòa tính の cao いMFCを tuyển 択せざるを đắc ないためである.

なお, Visual C++.NETに đáp tái されているマネージ拡 trương C++,あるいはVisual C++ 2005 dĩ hàng に đáp tái されているC++/CLINgôn ngữ を lợi dụng することで, 従 lai のMFCアプリケーションから.NET Frameworkのライブラリをシームレスに lợi dụng する, もしくはMFC tiêu chuẩn DLLに thật trang されたMFCネイティブコードをマネージコードでラップすることで, C#あるいはVB.NETのような.NET ngôn ngữ hướng けにクラスライブラリの hình で công khai する, といったハイブリッド khai phát ・ tương hỗ vận dụng が khả năng となり, ネイティブコードとマネージコードの tư sản をともに hoạt かすことができるようになる. しかし, マネージ拡 trương C++やC++/CLI ngôn ngữ を dụng いた khai phát はネイティブコードおよびマネージコード song phương にまたがる tri thức が tất yếu となるため, MFCのみを lợi dụng した tràng hợp, もしくは.NETのみを lợi dụng した tràng hợp と bỉ べて nan dịch độ が cao くなる.

MFCの khiếm điểm に đối する phê phán[Biên tập]

  • CDocument, CView đẳng の cơ bổn đích なクラスの sĩ dạng が nan giải である. Windowsメッセージ, コマンド, およびシェルといったWin32 APIの cơ bổn を lý giải していることが tiền đề となる.
  • クラスは cơ bổn đích に単 nhất 継 thừa のみであるため, giai tằng が thâm くなりがちである. また, friendクラスが đa dụng されていることもあって trực giao tính が đê い.
  • ATLと cộng hữu する nhất bộ を trừ き, すべての quan sổ[11],Cấu tạo thể, クラス[12]およびLiệt cử hìnhなどがグローバルDanh tiền không gianに tồn tại し, さらにマクロが đa dụng されているため, danh tiền のコンフリクト ( thức biệt tử の trùng đột, cạnh hợp ) が phát sinh しやすく, また継 thừa の giai tằng cấu tạo がわかりにくい. なお, MFCシリアライズ cơ năng を sử dụng するクラスは, グローバル danh tiền không gian で định nghĩa しなくてはならない.
  • Thật hành thời hình tình báoLệ ngoại 処 lýCơ cấu などの nhất bộ の sĩ dạng は, độc tự のマクロを sử dụng した thật trang となっているため, tiêu chuẩn C++との thống nhất cảm がない ( tiêu chuẩn C++の thật hành thời hình tình báo および lệ ngoại 処 lý cơ cấu との tịnh dụng や cộng tồn は khả năng ).
  • 変 sổDanh に ( 16ビット thời đại からの ) cổ いシステムハンガリアン ký pháp[13][14]を thải dụng しているため, tối tân のコーディングスタイルに hợp わない.
  • Win32 API tự thể が拡 trương を sào り phản した kết quả, APIとしての thống nhất tính に khiếm けるものとなったため, その bạc いラッパーライブラリ(Anh ngữ bản)でしかないMFCでは ẩn tế しきれない.
  • トレース dụng のDEBUG_NEWマクロによるnewキーワードの trí hoán など, tiêu chuẩn quy cách vi phản を phạm している[15].

バージョン[Biên tập]

MFCのバージョンは, バージョン6.0 dĩ hàng はその đối ứng するVisual C++ chế phẩm のバージョン phiên hào と đồng じとなっている. なお, Visual C++コンパイラ tự thể は_MSC_VERという dư ước マクロによりバージョン phiên hào が định nghĩa されるが, MFCでは_MFC_VERという dư ước マクロによりバージョン phiên hào が định nghĩa される. これらはそれぞれ dị なる nội bộ sổ trị になっているので, バージョンに ứng じてユーザープログラムコードを phân kỳ したい tràng hợp は chú ý が tất yếu となる.

Visual C++に đồng khổn されるMFCのバージョン nhất lãm を hạ ký に kỳ す.

Visual C++とMFCのバージョンの lí lịch
VC chế phẩm バージョン MFCバージョン _MFC_VER Bị khảo
Microsoft C/C++ 7.0 MFC 1.0 0x0100
Visual C++ 1.0 MFC 2.0 0x0200
Visual C++ 1.5 MFC 2.5 0x0250
Visual C++ 2.0 MFC 3.0 0x0300
Visual C++ 2.1 MFC 3.1 0x0310
Visual C++ 2.2 MFC 3.2 0x0320
Visual C++ 4.0 MFC 4.0 0x0400
Visual C++ 4.1 MFC 4.1 0x0410
Visual C++ 4.2 MFC 4.2 0x0420
Visual C++ 5.0 MFC 4.21 (mfc42.dll) 0x0421
Visual C++ 6.0 MFC 6.0 (mfc42.dll) 0x0600 Windows XP dĩ hàng のOSに tiêu chuẩn インストールされている.
Visual C++.NET 2002 MFC 7.0 (mfc70.dll) 0x0700 Thông thường アプリケーションの thiêm phó のみ. MS07-012[16]Đẳng セキュリティ vấn đề も kiến つかっているがWindows Update đẳng での canh tân モジュールの đề cung はない[Yếu xuất điển].
Visual C++.NET 2003 MFC 7.1 (mfc71.dll) 0x0710 Thông thường アプリケーションの thiêm phó のみ. MS07-012 đẳng セキュリティ vấn đề も kiến つかっているがWindows Update đẳng での canh tân モジュールの đề cung はない[Yếu xuất điển].
Visual C++ 2005 MFC 8.0 (mfc80.dll) 0x0800 サービスパックおよびセキュリティパッチの thích dụng により, phục sổ のバージョンがインストールされる.
Visual C++ 2008 MFC 9.0 (mfc90.dll) 0x0900 サービスパックおよびセキュリティパッチの thích dụng により, phục sổ のバージョンがインストールされる.
Visual C++ 2010 MFC 10.0 (mfc100.dll) 0x0A00
Visual C++ 2012 MFC 11.0 (mfc110.dll) 0x0B00
Visual C++ 2013 MFC 12.0 (mfc120.dll) 0x0C00
Visual C++ 2015 MFC 14.0 (mfc140.dll) 0x0E00
Visual C++ 2017 MFC 14.0 (mfc140.dll) 0x0E00 Visual C++コンパイラの nội bộ バージョン phiên hào は14.1だが, CRTライブラリ đồng dạng にMFCの nội bộ バージョン phiên hào は14.0のまま cư え trí きとなっている.
Visual C++ 2019 MFC 14.0 (mfc140.dll) 0x0E00 Visual C++コンパイラの nội bộ バージョン phiên hào は14.2だが, CRTライブラリ đồng dạng にMFCの nội bộ バージョン phiên hào は14.0のまま cư え trí きとなっている.

Visual C++.NET 2003までは, C/C++ (CRT) およびMFCのランタイム ライブラリは khai phát hoàn cảnh のインストールとともにWindowsのシステム フォルダ (%WinDir%\System32あるいは%WinDir%\SysWOW64) にインストールされるようになっていた[17]が, Windows XP dĩ hàng の tràng hợp, Visual C++ 2005および2008はDLL địa ngụcを giải tiêu する mục đích で, %WinDir%\WinSxS dĩ hạ の, amd64_microsoft.vc80.mfc_*, ia64_microsoft.vc80.mfc_*, x86_microsoft.vc80.mfc_*などのフォルダにSide-by-Sideアセンブリとしてインストールされるようになっている. これにより, サービスパックを thích dụng したランタイムをインストールしたり, ランタイムにセキュリティパッチを thích dụng したりすると, cựu バージョンのランタイムは thượng thư きされず, tân しいバージョンのランタイムが truy gia インストールされるため, phục sổ の dị なるバージョンが cộng tồn できる. なお, Visual C++.NET 2003までは, MFCを sử dụng するアプリケーションの thật hành プログラムの tồn tại するフォルダにMFCランタイムをコピーして tái phối bố すれば, MFCランタイムがインストールされていないエンドユーザー hoàn cảnh でも thật hành できていたが, Visual C++ 2005および2008ではこのようなSide-by-Sideアセンブリの hình thái をとるようになっているため, 単 thuần にコピーを thiêm phó するだけでは thật hành することができない.Visual C++ 2005および2008を sử dụng して tác thành されたMFCアプリケーションをエンドユーザー hoàn cảnh で thật hành するためには, hạ ký の phương pháp が tồn tại する[18][19].

  1. エンドユーザー hoàn cảnh にVisual C++のランタイムパッケージを biệt đồ インストールする.
  2. アプリケーションをビルドする tế, CRT/MFCをスタティックリンク (Tĩnh đích リンク) する.
  3. アプリケーションマニフェストを sử dụng してCRT/MFCランタイムをプライベートアセンブリHóa する (Windows XPDĩ hàng ).

1 phiên mục の phương pháp は, エンドユーザーの phụ đam が tăng えるものの, セキュリティ diện で tối も an toàn な phương pháp である. インストールされたランタイムDLL quần は, Microsoft Updateなどによって đề cung されるセキュリティパッチの thích dụng đối tượng となる ( ただし tiền thuật の thông り, DLL tự thể はセキュリティパッチによって thư き hoán えられるわけではない ). なお, エンドユーザーランタイムのインストーラはマイクロソフトから vô thường đề cung されており, khai phát giả による tái phối bố も hành なえるようになっている. 2 phiên mục の phương pháp は, エンドユーザーの thủ gian を giảm らせるが, アプリケーションビルド thời のリンク thời gian が tăng gia し, thật hành プログラムのファイルサイズが phì đại hóa するという khiếm điểm がある[20].また, セキュリティパッチ thích dụng の đối tượng ngoại となる ( ちなみに/clrオプションを hữu hiệu にして.NETハイブリッドアプリケーションを tác thành する tràng hợp はそもそもCRT/MFCライブラリをスタティックリンクすることはできない ). 3 phiên mục の phương pháp は, アプリケーションにMFCランタイムを đồng khổn するための phương pháp であり, スタティックリンクする tràng hợp と đồng dạng にエンドユーザーの thủ gian を giảm らせる.

なお, Visual C++ 2010 dĩ hàng では, CRTおよびMFCランタイムのSide-by-Side phối trí phương thức は廃 chỉ され, tái びVisual C++.NET 2003 dĩ tiền と đồng じようにWindowsシステム フォルダにインストールされるようになっている. サービスパックおよびセキュリティパッチが thích dụng されると, システム フォルダ nội のDLLファイル ( mfc100.dllなど ) が thư き hoán えられる.

MBCSとUnicode[Biên tập]

MFCではアプリケーションのコンパイル&ビルド thời に thiết định ・ định nghĩa するMBCS/UNICODEシンボル tình báo に hợp わせて, それぞれMBCS bản MFCライブラリとUnicodeBản MFCライブラリが ám mặc đích にリンクされて sử dụng される. MBCS bản とはANSIマルチバイト văn tự セット (Multibyte Character Set)[21]Bản のことで, lệ えば nhật bổn ngữ bản の tràng hợpShift_JIS( nghiêm mật にはANSIコードページ932 ) に tương đương する. データの cách nạp にはchar hình およびその phối liệt が chủ に sử われる. Unicode bản とはWindows dụng のUnicode đối ứng bản のことで,UTF-16LEに tương đương する. データの cách nạp にはwchar_t hình およびその phối liệt が chủ に sử われる. WindowsではOSの nội bộ văn tự コードがUTF-16LEのため, nhất bàn đích にはアプリケーションの nội bộ văn tự コードとしてUTF-8マルチバイトやUTF-32が sử われることは thiếu ない.

MFCアプリケーション khai phát において, MBCSおよびUnicode lạng phương のバージョンで động tác するコードを ký thuật する tràng hợp, nhất bàn đích にはMBCS, _MBCS, UNICODE, _UNICODEなどのシンボル định nghĩa trạng huống に ứng じてコンパイルするコードを phân kỳ させることで đối 処する. MFC/ATL, tiêu chuẩn C/C++ランタイムライブラリ (CRT) およびWin32 APIにはMBCS/Unicode lạng đối ứng を dung dịch にするためのマクロ[22]や, TCHAR, LPTSTR, LPCTSTR hình およびCStringクラスといったヘルパーが dụng ý されている.

Windows NT hệの tối sơ のOSであるWindows NT 3.1は, đương sơ からUnicodeの sơ kỳ quy cách であるUCS-2に đối ứng していた[23].またUTF-16のサロゲートペアに đối ứng したのはWindows XPからである[24].Windows 9x hệのOSではもともとUnicode phi đối ứng であり, lịch sử đích にWindowsアプリケーション khai phát ngôn ngữ としてのC/C++は trường らくMBCSを sử dụng してきた. しかし, quốc tế hóa đối ứng ( Unicode đối ứng ) が cầu められるという thời đại の lưu れから, まずVisual Studio 2005ではプロジェクトの kí định の thiết định がUnicodeとなり, さらにVisual Studio 2013からは, MBCS bản MFC/ATLライブラリは phi thôi thưởng となりインストーラに đồng khổn されなくなった ( Unicode bản MFC/ATLライブラリのみ đồng khổn ). なお, ライブラリのバイナリがIDEにバンドルされなくなっただけで, Visual Studio 2013 hướng けMBCS bản MFCライブラリのDLLバージョンはマイクロソフト xã の công thức サイトからダウンロードすることで thủ đắc できる. Nhất phương, Visual C++ tái ban bố khả năng パッケージ ( エンドユーザー hướng けリテールランタイム ) には, 2013 dĩ hàng も, dẫn き続きMBCS bản MFCランタイムDLLが hàm まれ, MBCS bản MFCランタイムを cố khách に tái ban bố するための truy gia の thủ thuận は tất yếu ない.

なお,Windows 8/Windows RTで đạo nhập されたWindowsストアアプリ ( のちのWindows 10におけるユニバーサルWindowsプラットフォームアプリ ) は,C#などの.NET ngôn ngữ による khai phát のほか,C++/CX(Anh ngữ bản)というネイティブ拡 trương ngôn ngữ による khai phát も khả năng となっているが, ATLの nhất bộ は sử dụng できるもののMFCは sử dụng できない. また, Windowsストアアプリではマルチバイト văn tự ・ văn tự liệt のAPIが sử えなくなっており, ASCIIもしくはUnicode văn tự ・ văn tự liệt のみが sử dụng できる[25].

Cước chú[Biên tập]

  1. ^リボン デザイナー (MFC)
  2. ^Visual C++ - Visual Studio 2010 の C++ と MFC での tân cơ năng の tường tế
  3. ^MFC applications now default to being DPI-aware | Visual C++ Team Blog,Internet Archive
  4. ^MFC Additions for Visual Studio 2010 SP1 | Microsoft Docs
  5. ^Direct2D (Windows)
  6. ^チュートリアル: MFC プロジェクトへの D2D オブジェクトの truy gia
  7. ^Windows Animation Manager (Windows)
  8. ^チュートリアル: MFC プロジェクトへのアニメーションの truy gia
  9. ^Động đích レイアウト
  10. ^DLL の cảnh giới を việt えて CRT オブジェクトを độ す tràng hợp に phát sinh する khả năng tính のあるエラー
  11. ^グローバル quan sổ は, danh tiền に thông lệAfxプレフィックスが phó けられているが, lệ ngoại もある.MFC Macros and Globals
  12. ^クラス danh は, danh tiền に thông lệCプレフィックスが phó けられている.
  13. ^Making Wrong Code Look Wrong - Joel on Software
  14. ^Gian vi ったコードは gian vi って kiến えるようにする - The Joel on Software Translation Project
  15. ^Deep C++, dư ước danh - MSDN/Internet Archive
  16. ^マイクロソフト セキュリティ tình báo MS07-012 - trọng yếu
  17. ^Redistribution of the shared C runtime component in Visual C++
  18. ^Visual C++ - phối trí lệ (MSDN)
  19. ^グローバルに đề cung される side-by-side アセンブリを thích dụng しないアプリケーションは, マイクロソフトのソフトウェア canh tân プログラムで tu chính される vấn đề に đối して thúy nhược になる khả năng tính があるマイクロソフト サポート オンライン
  20. ^テクニカル ノート 33: MFC の DLL バージョン (MSDN)
  21. ^Unicode とマルチバイト văn tự セット (MBCS: Multibyte Character Set) のサポート
  22. ^CreateFileA()/CreateFileW() APIに đối ứng するCreateFileマクロや, MBCS/Unicode văn tự liệt リテラルを thiết り thế えるTEXT(), _T()マクロなど.
  23. ^The sad history of Unicode printf-style format specifiers in Visual C++ - The Old New Thing
  24. ^Thật dụng が thủy まったUnicodeの hiện trạng と khóa đề | JAGAT
  25. ^Windows Store Apps, the Windows Runtime, and the C Run-Time

Quan liên hạng mục[Biên tập]

Ngoại bộ リンク[Biên tập]

Phi công thức[Biên tập]