コンテンツにスキップ

Microsoft Foundation Class

Xuất xứ: フリー 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) と cùng dạng に,Visual Studioに cùng khổn されるライブラリとなっている.

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

Điểm chính

[Biên tập]

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

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

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

Lịch sử

[Biên tập]

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

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

Visual C++ 4.2においてWinInet(Tiếng Anh bản)およびActiveXなど の インターネット quan liền の クラスが thêm vào された sau は, MFC tự thể に đặc に đại きな変 hóa がなく, Visual C++ 7.0 (Visual C++.NET 2002) においてMFCとATL の một bộ が thống hợp された trình độ にとどまっていたが, Visual C++ 2008 (Visual Studio 2008) へ の サービスパック1 áp dụng khi にインストールされる “MFC Feature Pack” において, MFCは trên diện rộng な tiến hóa を toại げている. Cụ thể には,Office2007 phong のリボン インターフェイスを cấu trúc するため の "CMFCRibbon〜" で thủy まる danh trước を cầm つクラスや, Visual Studio 2005 phong の スマート ドッキング ウィンドウを thật hiện するCDockablePaneクラスなど, 100 trở lên の クラスが thêm vào されている. これら の クラスを lợi dụng する trường hợp, khai phát giả は cơ bản に, Feature Packインストール sau にMFCアプリケーション ウィザードに thêm vào されるリボン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 đàn が thêm vào されているが, thật chất にCOMコンポーネントを lợi dụng したAPIプログラミングであり, さらにリボン フレームワーク の コンポーネントが dẫn vào されている の はWindows 7およびWindows VistaSP2 Platform Update lấy hàng の OSであるため, ネイティブ (アンマネージ) の リボンUIアプリケーション の khai phát に quan しては, MFC の tuyển 択は hữu lực dự khuyết となり đến る.

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

Visual C++ 2015では động レイアウトにも đố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 bán された khi, マイクロソフトはマクロの sống dùng によってC++ の ngữ pháp を拡 trương し, ウインドウメッセージ,Ngoại lệ 処 lý,Thật thịnh hành hình tình báo,クラス の động インスタンス hóa などを quản lý していた ( ngoại lệ 処 lý, thật thịnh hành hình tình báo などは lúc ấy の C++ の ngôn ngữ sĩ dạng にも thật trang ( コンパイラ ) にも tồn tại しなかった ). ウインドウメッセージ の ために cấu văn に変 hóa を thêm えたことは, không cần な仮 tưởng quan số テーブルの sử dụng を tránh けることでメモリ の tiêu phí lượng を ức える thư いがあった. さらに, cấu tạo がより cụ thể になり, Visual C++に phó thuộc する nhiều dạng なツールがソースコード toàn thể を phân tích することなく処 lý できるという hiệu quả もあった. メッセージ処 lý の マクロは, C++ の 仮 tưởng quan số の đại わりとなった. ただ, mộ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 プログラミングモデルを dẫn vào するという điểm である. もう một つは, Windows の リソースに quan liền した giống nhau なデータ hình に đối するラッパーを cung cấp するという điểm である. これら の ラッパーを sử dụng することで, リソース quản lý オブジェクト の スコープを ra た khi に tự động にリソース の ハンドルを giải phóng させることなどができる (RAII). さらに, MFCはModel View Controllerモデルに cơ づいたアプリケーションを khai phát するため のドキュメント/ビューフレームワークを cung cấp する.

マイクロソフトはC++ chuẩn hoá にあたって, nhiều trọng 継 thừa について phủ định な lập trường をとっていた. MFCもそ の lý niệm に従い lúc đầu の MFCは nhiều trọng 継 thừa を toàn く sử dụng しておらず, オブジェクトとして の cơ năng は nền クラスに, そして cụ thể な cơ năng の thật trang は単 thuần 継 thừa によって thật trang されている. これはオブジェクトが không cần なメンバによって dài rộng hóa する sự が vô く, また không cần thiết に tân trang されていない の で cái 々 の クラスを lý giải する sự が dễ dàng になっている. しかし, một bộ の クラスは nhiều trọng 継 thừa ( より cận đại な 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 になっている ( sau thuật の CViewやCDocumentもこれに hàm まれる ).

MFC の chủ な thiếu điểm は, nhiều く の 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を buôn bán していたが, それ lấy hàng はMacintoshに đối するVisual Studio の サポートは bỏ dở された.

また, Visual C++ の C/C++ライブラリと cùng dạng に, ライブラリ の バージョンごとにメモリ quản lý が dị なるため, lẫn nhau いに dị なるバージョン の MFCを sử dụng したEXE-DLLプログラム gian でDLLCảnh giới を càng えてMFCオブジェクト・CRTオブジェクトをやりとりできないなど, バージョン gian で の バイナリレベル の trao đổi tính が thấp くなっている[10].そ の ため, cũ バージョン の MFCを sử って khai phát されたDLL ( MFC拡 trương DLL ) やスタティックライブラリを, tân バージョン の MFCアプリケーションでそ の まま lợi dụng することは cơ bản に không có khả năng ( そ の nghịch もまた nhiên り ) となっており, ソースコードから の lạ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 してアプリケーション sườn に công khai する tất yếu がある.

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

なお, Visual C++.NETに chở khách されているマネージ拡 trương C++,あるいはVisual C++ 2005 lấy hàng に chở khách されているC++/CLINgôn ngữ を lợi dụng することで, 従 tới の 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 ・ lẫn nhau vận dụng が khả năng となり, ネイティブコードとマネージコード の tư sản をともに sống かすことができるようになる. しかし, マネージ拡 trương C++やC++/CLI ngôn ngữ を dùng いた khai phát はネイティブコードおよびマネージコード hai bên にまたがる 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 と so べて khó dễ độ が cao くなる.

MFC の thiếu điểm に đối する phê phán

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

バージョン

[Biên tập]

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

Visual C++に cùng khổn されるMFC の バージョン một lãm を hạ nhớ に kỳ す.

Visual C++とMFC の バージョン の lí lịch
VC chế phẩm バージョン MFCバージョン _MFC_VER Phụ lục
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 lấy hàng の OSに tiêu chuẩn インストールされている.
Visual C++.NET 2002 MFC 7.0 (mfc70.dll) 0x0700 Thông thường アプリケーション の thêm phó の み. MS07-012[16]Chờ セキュリティ vấn đề も thấy つかっているがWindows Update chờ で の đổi mới モジュール の cung cấp はない[Muốn xuất xứ].
Visual C++.NET 2003 MFC 7.1 (mfc71.dll) 0x0710 Thông thường アプリケーション の thêm phó の み. MS07-012 chờ セキュリティ vấn đề も thấy つかっているがWindows Update chờ で の đổi mới モジュール の cung cấp はない[Muốn xuất xứ].
Visual C++ 2005 MFC 8.0 (mfc80.dll) 0x0800 サービスパックおよびセキュリティパッチ の áp dụng により, số nhiều の バージョンがインストールされる.
Visual C++ 2008 MFC 9.0 (mfc90.dll) 0x0900 サービスパックおよびセキュリティパッチ の áp dụng により, số nhiều の バージョンがインストールされる.
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++コンパイラ の bên trong バージョン phiên hiệu は14.1だが, CRTライブラリ cùng dạng にMFC の bên trong バージョン phiên hiệu は14.0 の まま theo え trí きとなっている.
Visual C++ 2019 MFC 14.0 (mfc140.dll) 0x0E00 Visual C++コンパイラ の bên trong バージョン phiên hiệu は14.2だが, CRTライブラリ cùng dạng にMFC の bên trong バージョン phiên hiệu は14.0 の まま theo え trí きとなっている.

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

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

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

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

MBCSとUnicode

[Biên tập]

MFCではアプリケーション の コンパイル&ビルド khi に giả thiết ・ định nghĩa するMBCS/UNICODEシンボル tình báo に hợp わせて, それぞれMBCS bản MFCライブラリとUnicodeBản MFCライブラリが ám mặc にリンクされて 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 およびそ の xứng 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 およびそ の xứng liệt が chủ に sử われる. WindowsではOS の bên trong văn tự コードがUTF-16LE の ため, giống nhau にはアプリケーション の bên trong văn tự コードとしてUTF-8マルチバイトやUTF-32が sử われることは thiếu ない.

MFCアプリケーション khai phát において, MBCSおよびUnicode lạng phương の バージョンで động tác するコードを ghi lại する trường hợp, giống nhau には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 を dễ dàng にするため の マクロ[22]や, TCHAR, LPTSTR, LPCTSTR hình およびCStringクラスといったヘルパーが dụng ý されている.

Windows NT hệの lúc ban đầu の OSであるWindows NT 3.1は, lúc trước からUnicode の lúc đầu 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ử に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ではプロジェクト の đã định の giả thiết がUnicodeとなり, さらにVisual Studio 2013からは, MBCS bản MFC/ATLライブラリは phi đẩy thưởng となりインストーラに cùng khổn されなくなった ( Unicode bản MFC/ATLライブラリ の み cùng khổn ). なお, ライブラリ の バイナリがIDEにバンドルされなくなっただけで, Visual Studio 2013 hướng けMBCS bản MFCライブラリ の DLLバージョンはマイクロソフト xã の công thức サイトからダウンロードすることで lấy được できる. Một phương, Visual C++ lại ban bố khả năng パッケージ ( エンドユーザー hướng けリテールランタイム ) には, 2013 lấy hàng も, dẫn き続きMBCS bản MFCランタイムDLLが hàm まれ, MBCS bản MFCランタイムを khách hàng に lại ban bố するため の thêm vào の tay thuận は tất yếu ない.

なお,Windows 8/Windows RTで dẫn vào されたWindowsストアアプリ ( の ち のWindows 10におけるユニバーサルWindowsプラットフォームアプリ ) は,C#など の.NET ngôn ngữ による khai phát の ほか,C++/CX(Tiếng Anh bản)というネイティブ拡 trương ngôn ngữ による khai phát も khả năng となっているが, ATL の mộ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].

Chú thích

[Biên tập]
  1. ^リボン デザイナー (MFC)
  2. ^Visual C++ - Visual Studio 2010 の C++ と MFC で の tân cơ năng の kỹ càng tỉ mỉ
  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 オブジェクト の thêm vào
  7. ^Windows Animation Manager (Windows)
  8. ^チュートリアル: MFC プロジェクトへ の アニメーション の thêm vào
  9. ^Động レイアウト
  10. ^DLL の cảnh giới を càng えて CRT オブジェクトを độ す trường hợp に phát sinh する khả năng tính の あるエラー
  11. ^グローバル quan số は, danh trước に thường lệAfxプレフィックスが phó けられているが, ngoại lệ もある.MFC Macros and Globals
  12. ^クラス danh は, danh trước に thường lệCプレフィックスが phó けられている.
  13. ^Making Wrong Code Look Wrong - Joel on Software
  14. ^Gian vi ったコードは gian vi って thấy えるようにする - The Joel on Software Translation Project
  15. ^Deep C++, dư ước danh - MSDN/Internet Archive
  16. ^マイクロソフト セキュリティ tình báo MS07-012 - quan trọng
  17. ^Redistribution of the shared C runtime component in Visual C++
  18. ^Visual C++ - phối trí lệ (MSDN)
  19. ^グローバルに cung cấp される side-by-side アセンブリを áp dụng しないアプリケーションは, マイクロソフト の ソフトウェア đổi mới プログラムで tu chỉnh される vấn đề に đối して yếu ớt になる 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 と đầu đề | JAGAT
  25. ^Windows Store Apps, the Windows Runtime, and the C Run-Time

Quan liền hạng mục

[Biên tập]

Phần ngoài リンク

[Biên tập]

Phi công thức

[Biên tập]