看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
lwecloud:推 05/12 17:06