推 lwecloud:推 05/12 17:06
※ 引述《m13m13m (奇怪 還沒收到??)》之銘言:
: 請問一下大家:
: VC++的定義是什麼呢... 是用visual studio 來寫c++程式
: 還是MFC...
: 我開專案是開Windows Form Application 是用C++,那在msdn上
: 歸類算哪一種? 因為上面有一堆MFC、C#的資料,可是我用VC++當
: 關鍵字MSDN又會提供給我MFC的,也就是要求要開MFC project的...
: 有點模糊了... 請高手解答
: 謝謝
Visual Studio是開發程式的平台,
C++是程式語言,
MFC是Library。
MFC是Microsoft想簡化win32 API(MS自以為的簡化....0rz),
所整理出來的library,本質還是Win32 API,
你開的專案應該是直接使用Win32 API,
不是使用MFC的,
要用的話,你要手動include相關的header和連結相關的library。
查MSDN你可以先選C++,就可以把C#的bypass掉,
接著例如查EnableWindow,會出現
EnableWindow(HANDLE hndl, BOOL enable)
or
CWnd::EnableWindow(BOOL enable)
前者是Win32 API,後者是在MFC CWnd這個class的function,
本質是一樣的,
因為CWnd這個class裡有一個參數:CWnd::m_hWnd,
就是要傳入Win32 API的HANDLE,
基本上查詢有出現class或是global function名稱是AFX開頭的,
都是MFC的。
你開的那個專案default並沒有含入MFC相關的東西,
你無法宣告CWnd,自然也無法使用CWnd::EnableWindow(BOOL enable),
所以你只能用第1個function,HANDLE則要自己去create,
這是比較基本的差別,其他的message loop的差別就比較複雜一點了,
請參照很多書的第一章都有說明。
MFC還是有一定的好處,至少它已經整理成class了,
但是我個人覺得自己包的東西都會有bug了,何況是別人包的,
所以基本上我都是混著用,只要發現是MFC包的不合用,
就退到Win32 API,甚至回歸到c++自己重寫,
久了自然就會有自己的framework了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.250.104