色噜噜人体337p人体 I 超碰97观看 I 91久久香蕉国产日韩欧美9色 I 色婷婷我要去我去也 I 日本午夜a I 国产av高清怡春院 I 桃色精品 I 91香蕉国产 I 另类小说第一页 I 日操夜夜操 I 久久性色 I 日韩欧在线 I 国产深夜在线观看 I 免费的av I 18在线观看视频 I 他也色在线视频 I 亚洲熟女中文字幕男人总站 I 亚洲国产综合精品中文第一 I 人妻丰满熟av无码区hd I 新黄色网址 I 国产精品真实灌醉女在线播放 I 欧美巨大荫蒂茸毛毛人妖 I 国产一区欧美 I 欧洲亚洲1卡二卡三卡2021 I 国产亚洲欧美在线观看三区 I 97精品无人区乱码在线观看 I 欧美妇人 I 96精品在线视频 I 国产人免费视频在线观看 I 91麻豆国产福利在线观看

Windows面試題

時間:2021-06-09 12:06:36 試題 我要投稿

Windows面試題

  問MainFrm,CDocument和CView類之間的關系,

Windows面試題

  MainFrm為框架類,包含應用程序外框所包含部分。CView為視圖類,用于顯示數據的空白區域窗口。

  CDocument為文檔類。

  MFC提供了文檔/視類結構,采用數據本身和顯示分離的機制。其中文檔類CDocument用于數據的存儲和加載,視類CView用于數據的顯示與修改。

  Dialog和ModuelDialog不同用法

  1)類型不同

  MoudleDialog 模態對話框,屬于壟斷對話框,例如打開對話框,點擊打開后不能再執行其他操作,會發出“嘟嘟嘟”的聲音;

  非模態對話框,屬于非壟斷對話框,利用查找對話框,點擊查找同時可以執行其他操作;

  即:非模態不壟斷;模態壟斷。

  2)用法不同

  CDialog::Create :to create amodelessdialog box

  CDialog::DoModal :Call thismember function to invoke the modal dialog box andreturn the dialog-box resultwhen done

  windows消息系統由哪幾部分構成?

  答:由一下3部分組成:

  1.消息隊列:操作系統負責為進程維護一個消息隊列,程序運行時不斷從該消息隊列中獲取消息、處理消息;

  2.消息循環:應用程序通過消息循環不斷獲取消息、處理消息。

  3.消息處理:消息循環負責將消息派發到相關的窗口上使用關聯的窗口過程函數進行處理。

  什么時候必須重寫拷貝構造函數?

  答:當構造函數涉及到動態存儲分配空間時,要自己寫拷貝構造函數,并且要深拷貝。

  什么是消息映射?

  答:消息映射就是讓程序員指定MFC類(有消息處理能力的類)處理某個消息。然后由程序員完成對該處理函數的編寫,以實現消息處理功能。

  如何定義和實現一個類的成員函數為回調函數?

  答:

  所謂的回調函數,就是預先在系統的對函數進行注冊,讓系統知道這個函數的存在,以后,當某個事件發生時,再調用這個函數對事件進行響應。

  定義一個類的成員函數時在該函數前加CALLBACK即將其定義為回調函數,函數的實現和普通成員函數沒有區別

  MFC為何使用消息映射表而不用虛函數?

  這個問題是windows開發面試中最經常問到得問題,也是很有深度的一個問題。

  有兩個帖子對該問題討論的比較深刻:

  http://topic.csdn.net/u/20090822/16/4cf5d189-0e5e-41ff-9ba3-c7eaf2f6da74.html

  http://topic.csdn.net/u/20090316/22/8b067591-6a17-4970-b224-41ab589294b3.html

  說法一:

  虛函數實現占用內存較大

  侯捷在《深入淺出MFC》中說微軟使用消息映射機制而不用虛函數,是因為虛函數空間代價的原因。在當前MFC2.0版本發布的時候是92年,pc的內存才幾M。一個類的虛表的大小就是虛函數的個數*一個指針的大小。

  假設windows的通用消息有200個,那么CWnd類的虛表就有 200*4個byte = 800byte,CWnd類的所有派生類均copy了一份CWnd的虛表vtable,然后自己的虛函數往后加CWnd類的虛表的后頭。

  (至于有人說CWnd類的派生類能共享CWnd的虛表,這個說法不靠譜。因為派生類自己的虛函數值加在基類的虛函數表項的最后的。如果CWnd派生了CWndChildA 和 CWndChildB,且兩個孩子均有自己的虛函數,那么都往CWnd類的后面加,豈不是沖突了?)。

  也就是系統內所有的CWnd類的派生類都要承受 800byte的代價。假設有100個類派生自CWnd 那么代價就是800*100byte 也就是 80K。這在當時內存很緊張的情況下,已經是一種巨大的內存消耗了!這里需要注意一點:vtable是和類綁定在一起的,而不是和類對象(也叫類的實例)綁定在一起的,類的實例僅增加一個指向該向類的vtable的指針而已。也就是說,如果你有100個CWnd派生類,哪怕你生成了100000個派生類的實例,vtable占用的內存也是80K。

  看來在當時的環境看來,MFC沒有采用虛函數,內存的.確是一個考慮。

  但是放在現在看,這點內存消耗確實微不足道的!也就是說,如果現在重新設計MFC的消息機制,如果不采用虛函數,并非因為虛函數的空間浪費問題。結論:這個說法靠譜。

  說法二:

  消息映射機制效率比虛函數效率高。

  因為那么多消息ID,如果找到其對應的消息處理函數,switch是不可少的!(可以hash?哦哦,的確可能,不過mfc里面可沒這么做?mfc里面怎么做的我也不清楚)

  MFC中采用的是消息映射的機制,而沒有用虛函數的機制,因為消息有很多,如果用虛函數機制,需要給每個消息定義一個虛函數,在分派消息時,程序需要逐一判斷是哪一個消息,找到合適的分支后再調用相應的虛函數;而通常情況下,應用程序不需要響應太多的消息,消息映射方式只需要判斷程序想要響應的這些消息即可,所以開銷小。

  也就是說,MFC采用了消息映射而沒有采用虛函數,是從對消息的響應機制來考慮的。消息映射,就可以僅實現自己感興趣的消息,這樣switch時就可以快一點。

  不過話又說回來,對一個非自己感興趣的系統消息來了以后,就需要遍歷消息網,層層的向基類查找直到找到對應的消息處理函數!這本身也很浪費時間!也許這種情況比較少見吧,否則的話,消息映射的消息響應時間并不比虛函數來的快!因為虛函數最多只需一次遍歷,而且,如果可以采用hash技術,更快!

  如果說,大多數消息都是系統的消息,那么消息映射的迭代查找消息函數的方式并不比虛函數的switch來的快!

  PS:這里有一篇對比消息映射機制和虛函數機制效率的簡單模擬實驗

  http://blog.csdn.net/hjsunj/archive/2008/01/10/2034314.aspx結論,該說法不靠譜!

  說法三:

  為了未來的可擴展性。兼容新的系統級的消息。

  我不是很清楚MS設計消息映射的初衷,但是感覺它著眼點更側重于增加新消息很容易,而不是節省內存。

  如果我們使用虛函數機制實現,恐怕對于每個可能的消息我們都必須在基類中定義一個虛函數,而其首要的困難就是你無法猜測未來會出現什么消息,也無法確定需要定義什么樣函數原型的虛函數。而使用消息映射,解決這個問題則相對容易,因為這將由未來的程序設計者決定他們的消息該如何處理。

  對于系統的新增消息,消息映射支持起來較方便。虛函數想要支持就需要改動基類添加虛函數。

  對于自定義的消息,無論消息映射和虛函數都可以很好的支持。

  那么虛函數方式如何支持自定義消息?

  自定義消息是不需要加到基類的。基類可以加個虛函數,OnMessage(xxx), 然后有自定義消息的類實現之,用switch轉換成相應虛函數調用,不是自己的消息再傳給基類。

  結論:這個說法靠譜。

  sendMessage與postMessage區別?

  不同點:sendMessage發送完畢以后需要等待處理完才返回;而postMessage發送消息后立即返回。

  Do not post the WM_QUIT message usingPostMessage; use thePostQuitMessage function.

  postMessage將消息放置到消息隊列中,不等待線程處理消息就立即返回。

  sendMessage發送指定的消息到窗口,并會調用窗口過程,直到窗口過程處理完畢后才返回。

  TCP的重發機制是怎么實現的?

  1.滑動窗口機制,確立收發的邊界,能讓發送方知道已經發送了多少(已確認)、尚未確認的字節數、尚待發送的字節數;讓接收方知道(已經確認收到的字節數)。

  2.選擇重傳,用于對傳輸出錯的序列進行重傳。

  TCP和UDP的區別?

  1)TCP面向連接(三次握手機制),通信前需要先建立連接;UDP面向無連接,通信前不需要建立連接;

  2)TCP保障可靠傳輸(按序、無差錯、不丟失、不重復);UDP不保障可靠傳輸,使用最大努力交付;

  3)TCP面向字節流的傳輸,UDP面向數據報的傳輸。

  TCP為什么不是兩次連接?而是三次握手?

  如果A與B兩個進程通信,如果僅是兩次連接。可能出現的一種情況就是:A發送完請報文以后,由于網絡情況不好,出現了網絡擁塞,即B延時很長時間后收到報文,即此時A將此報文認定為失效的報文。B收到報文后,會向A發起連接。此時兩次握手完畢,B會認為已經建立了連接可以通信,B會一直等到A發送的連接請求,而A對失效的報文回復自然不會處理。依次會陷入B忙等的僵局,造成資源的浪費。

  connect方法會阻塞,請問有什么方法可以避免其長時間阻塞?

  可以考慮采用異步傳輸機制,同步傳輸與異步傳輸的主要區別在于同步傳輸中,如果調用recvfrom后會一致阻塞運行,從而導致調用線程暫停運行;異步傳輸機制則不然,會立即返回。

  網絡編程中設計并發服務器,使用多進程與多線程,請問有什么區別?

  答案一:

  1,進程:子進程是父進程的復制品。子進程獲得父進程數據空間、堆和棧的復制品。

  2,線程:相對與進程而言,線程是一個更加接近與執行體的概念,它可以與同進程的其他線程共享數據,但擁有自己的棧空間,擁有獨立的執行序列。兩者都可以提高程序的并發度,提高程序運行效率和響應時間。

  線程和進程在使用上各有優缺點:線程執行開銷小,但不利于資源管理和保護;而進程正相反。同時,線程適合于在SMP機器上運行,而進程則可以跨機器遷移。

  答案二:

  根本區別就一點:用多進程每個進程有自己的地址空間(address space),線程則共享地址空間。所有其它區別都是由此而來的:

  1。速度:線程產生的速度快,線程間的通訊快、切換快等,因為他們在同一個地址空間內。

  2。資源利用率:線程的資源利用率比較好也是因為他們在同一個地址空間內。

  3。同步問題:線程使用公共變量/內存時需要使用同步機制還是因為他們在同一個地址空間內。等等

  Windows編程的知識點,如消息機制,一個自定義消息如何實現。

  自定義消息共分為3步驟:

  1) 自定義消息:#defineWM_MYMSGWM_USER+1

  2) 在頭文件中聲明函數:afx_msg voidonMyMsg();

  3) 在消息映射中添加對應關系:

  //BEGIN_MESSAGE_MAP(CDefMsgDemoDlg,CDialog)//END_MESSAGE_MAP()

  ON_MESSAGE(WM_MYMSG,onMyMsg)

  4)定義函數void onMyMsg();

  核心即:函數原型、關聯消息與消息響應函數的宏、函數實現。

  SNMP協議

  簡單網絡管理協議——應用層協議.

  包括5種數據包:Get-Request;Get-Next-Request;Set-Request, Get-Response; Trap;

  RAW套接字

  廣泛應用于高級網絡編程,如SNIFFER、拒絕服務、IP欺騙都是通過原始套接字實現的。

  窗口創建的步驟:

  1)設計窗口類(填充結構體)à2)注冊窗口類RegisterClassà3)創建窗口;4)顯示ShowWindow&更新窗口UpdateWindowà4)循環獲取消息GetMessage(){翻譯(轉換)TranslateMessage消息、處理消息DispathMessage(將消息交付給窗口過程進行處理)}。

  當觸發按鈕以后發生了什么?

  1)比如點擊鼠標左鍵后,操作系統首先會感知到該事件;2)操作系統將事件其轉化為消息;3)操作系統將消息投遞到對應程序(線程)的消息隊列中;4)應用程序(線程)從消息隊列中通過GetMessage獲取消息,并通過DispathMessge將消息交付給操作系統;5)操作系統通過設計窗口類時指定的窗口過程對對消息進行處理。

  你平時是如何調試程序的?(引申)當一個程序在自己機器上運行正常,但是在其他機器上程序運行崩潰,如何查找原因?

  斷點調試:

  值:查看變量(Variables)、表達式、內存(Memory)、寄存器(Register)的值。

  進程控制:VC允許被中斷的程序繼續運行、單步運行和運行到指定光標處,分別對應快捷鍵F5、F10/F11和CTRL+F10。

  其他調試手段:系統提供一系列特殊的函數或者宏來處理Debug版本相關的信息TRACE、ASSERT、VERIFy。Ctrl+B打開斷點設置。

  運行崩潰,如何查找原因? [提示后],可以通過打印語句來發現錯誤!

  線程、窗口、消息隊列三者之間的關系?

  MSDN上如是說:

  Thethread to which the message is posted musthave created a message queue,or elsethe call to PostThreadMessagefails.

  并提供了如下兩種解決方法:

  CallPostThreadMessage.If it fails, call theSleep function and call PostThreadMessageagain. Repeat untilPostThreadMessage succeeds.

  【面試官】說:一個線程對應一個或多個窗口(創建的關系),同時一個線程對應了一個消息隊列。

  【總結如下】:

  1.在MFC程序框架里面,CWinThread專門負責線程創建的,它可以創建用戶界面線程,及工作者線程。其中用戶界面線程是包含消息隊列的,而工作者線程是不包含消息隊列的。即【一句話】:用戶界面線程對應一個消息隊列。

  2.CWinThread類和CWnd類都派生自CCmdTarget,而CDialog對話框類、視圖類CView都派生自CWnd。

  【深入淺出MFC里一句話】:不是每一個窗口都產生一個線程(因為要付出昂貴的線程切換代價)。即,深入理解之:一個線程可以對應多個窗口。主線程可以創建出其所要的全部窗口。

  【結論】一個UI線程就1組消息隊列集合,一個線程可以創建多個窗口。

  OSI7層模型是什么?每層有哪些協議?

  應用層FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS表示層示例:加密,ASCII等會話層示例:RPC,SQL等傳輸層示例:TCP,UDP,SPX

  網絡層示例:IP協議、ICMP協議、ARP協議、RARP協議數據鏈路層示例:ATM,FDDI等物理層示例:Rj45,802.3等

  請寫出下列服務使用的默認端口POP3、SMTP、FTP、MSN、DNS、SQL

  端口:21服務:FTP

  端口:22服務:SSH端口:23服務:Telnet端口:25服務:SMTP端口:80服務:HTTP

  端口:110服務:PostOfficeProtocol-Version3(pop3)端口:569服務:MembershipMSN端口1433和1434服務:SQL

  DNS協議運行在UDP之上,使用端口號53

【Windows面試題】相關文章:

《windows畫筆》說課稿02-17

windows畫筆的說課稿09-08

windows畫筆的說課稿11-27

初識Windows9811-26

認識Windows 98窗口11-26

文員的面試題03-25

公選的面試題06-22

小升初面試題07-30

《初識Windows xp》優秀教案06-29

主站蜘蛛池模板: 99国产精品久久久久久久 | 中文字幕制服欧美久久一区 | 国产成人久久综合777777麻豆 | 老司机成人在线 | 小视频在线免费观看 | 精人妻无码一区二区三区 | 日韩精品无码熟人妻视频 | 精品国产品香蕉在线 | 亚洲日韩精品欧美一区二区 | 黄色小视频网 | 免费a级作爱片免费观看欧洲 | 少妇白浆高潮无码免费区 | 欧美 偷窥 清纯 综合图区 | 国产熟妇乱子伦视频在线观看 | 91人人草| 综合色婷婷一区二区亚洲欧美国产 | 噜噜色综合噜噜色噜噜色 | 女同性恋毛片 | 亚洲精品乱码久久久久久日本蜜臀 | 中日韩中文字幕 | 日韩在线永久免费播放 | 久久亚洲精品无码观看不 | 人人插人人看 | 亚洲精品国产二区图片欧美 | 午夜国产福利视频 | 国产mv日韩mv欧美mv | 亚洲宅男天堂 | 字幕专区码中文欧美在线 | 国产成人综合精品 | 超碰人人擦 | 亚洲欧美日韩高清一区 | sese在线视频 | 欧美老熟妇乱子伦牲交视频 | 国内高清久久久久久 | 中文在线观看免费网站 | 98av在线| 精品少妇人妻av免费久久久 | 好男人在在线社区www在线影院 | 国产伊人一区 | 狠狠色老熟妇老熟女 | 欧美不卡无线在线一二三区观 | 欧美日韩亚洲在线 | 唐人社导航福利精品 | 亚洲婷婷五月综合狠狠爱 | 欧美怡红院免费全部视频 | 亚洲av禁18成人毛片一级 | 日本肉体bbbbbb肉交内谢 | 秋霞午夜av | 视频一区 中文字幕 | 免费午夜剧场 | 三级黄色日本 | 一区二区免费 | 狂野猛交ⅹxxx吃奶 日韩免费av网站 | 3d动漫精品啪啪1区2区免费 | 天堂网www最新版官网 | 乌克兰少妇猛性xxxxxxx | 国产乱hdvidoes | 亚洲色图清纯唯美 | 国产成a人片在线观看视频下载 | 黄色快播视频 | 国产精品久久久久蜜芽 | 99riav国产在线观看 | 嫩草嫩草嫩草嫩草嫩草 | 99久久99这里只有免费费精品 | 青娱乐91 | 亚洲国产av无码男人的天堂 | 国产精品导航一区二区 | 亚洲自偷自偷在线成人网站传媒 | 乌克兰少妇猛性xxxxxxx | 日本久久精品一区 | 国产精品久久久久久久免费软件 | 黄瓜视频黄在线观看 | 日本特黄特色aaa大片免费 | 国内精品乱码卡一卡2卡三卡 | 日本老熟妇乱 | 色欲色香天天天综合网www | 国产精品亚洲专区无码唯爱网 | 亚洲精品1卡2卡三卡4卡乱码 | 伊人av超碰久久久麻豆 | 欧美 另类 国产 第一页 | 亚洲精品国产肉丝袜久久 | 爽爽影院免费观看视频 | 丝袜视频一区 | 一区二区三区四区不卡 | 免费黄色视频毛片 | 色 成人 亚洲 | 中文字幕在线观看三区 | 欧美色狠| 国产成人精品午夜福利在线观看 | 日日摸天天摸爽爽狠狠97 | 国产91精品高潮白浆喷水 | 亚洲一区精品视频在线观看 | 亚洲顶级裸体av片 | 免费黄色网页 | 日日骚 | 色妹子久久 | 人妻大战黑人白浆狂泄 | 国产日韩一区二区三 | 清清草在线视频 |