入門-vc指導(dǎo)教程msdn以調(diào)試模式運(yùn)行程序_第1頁(yè)
入門-vc指導(dǎo)教程msdn以調(diào)試模式運(yùn)行程序_第2頁(yè)
入門-vc指導(dǎo)教程msdn以調(diào)試模式運(yùn)行程序_第3頁(yè)
入門-vc指導(dǎo)教程msdn以調(diào)試模式運(yùn)行程序_第4頁(yè)
入門-vc指導(dǎo)教程msdn以調(diào)試模式運(yùn)行程序_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

VisualC++VisualC++指導(dǎo)........................................................................................................................VisualStudioIDE簡(jiǎn)介 項(xiàng)目和解決方案 生成項(xiàng)目 使用IDE修復(fù)編譯錯(cuò) 測(cè)試項(xiàng)目 調(diào)試項(xiàng)目 修復(fù)包含bug的程 部署程序 創(chuàng)建命令行應(yīng)用程序 創(chuàng)建標(biāo)準(zhǔn)C++程序 在命令行上編譯本機(jī)C++程序 創(chuàng)建VisualC++源文件并在命令行上對(duì)其進(jìn)行編 在命令行上編譯VisualC++.NET控制臺(tái)應(yīng)用程 在VisualStudio中編譯面向CLR的C++程序 在VisualStudio中創(chuàng)建新項(xiàng)目并添加新的源文 編譯C程 創(chuàng)建C源文件并在命令行上對(duì)其進(jìn)行編 創(chuàng)建Windows應(yīng)用程序 創(chuàng)建Win32應(yīng)用程序 創(chuàng)建新的Win32項(xiàng) 啟動(dòng)Win32應(yīng)用程 向WinMain添加功 向WndProc添加功 說(shuō) 代 通過(guò)使用.NETFramework創(chuàng)建Windows窗體應(yīng)用程序 創(chuàng)建新的Windows窗體項(xiàng) 創(chuàng)建Windows窗體控件 創(chuàng)建新的Windows窗體控件項(xiàng) 創(chuàng)建Windows窗體應(yīng)用程序項(xiàng) 使用DirectX創(chuàng)建游戲 創(chuàng)建和使用動(dòng)態(tài)庫(kù) 創(chuàng)建新的動(dòng)態(tài)庫(kù)(DLL)項(xiàng) 創(chuàng)建和使用靜態(tài)庫(kù) 創(chuàng)建和使用托管程序集 VisualStudioIDE簡(jiǎn)介在這些中,您將創(chuàng)建一個(gè)新的標(biāo)準(zhǔn)C++程序,并使用VisualStudio為C++開發(fā)人員提供的功能測(cè)試項(xiàng)目和解(C++)(C++)(C++)、調(diào)(C++)、部署程序DLL和一個(gè)該DLL的可執(zhí)行文件。有關(guān)信息,請(qǐng)參見介紹解決方案、項(xiàng)目和項(xiàng)本假定您具備C++語(yǔ)言的基礎(chǔ)知識(shí)VisualStudioVisualC++程序的第一步是選擇項(xiàng)目的類型。對(duì)于每種項(xiàng)目類型,VisualStudio都為您設(shè)置編譯器設(shè)置并生成起始代碼。在“文件”菜單中,指向“新建”,然后單擊“項(xiàng)目...”“Win32控制臺(tái)應(yīng)用程序”創(chuàng)建新項(xiàng)目時(shí),VisualStudio將該項(xiàng)目放入一個(gè)解決方案。請(qǐng)接受解決方案的默認(rèn)名稱,該名 按“確定”啟動(dòng)“Win32應(yīng)用程序向?qū)А?。在“Win32應(yīng)用程序向?qū)А笨虻摹案攀觥表?yè)中,單擊“下一步”在“應(yīng)用程序類型”下的“應(yīng)用程序設(shè)置”頁(yè),選擇“控制臺(tái)應(yīng)用程序”。選擇“其他選項(xiàng)”下的“空項(xiàng)目設(shè)置并單擊“完成”在本步驟中,您要向項(xiàng)目添加一個(gè)類,VisualStudio.h.cpp文件添加到項(xiàng)目中。然后,為測(cè)如果“解決方案資源管理器”窗口不可見,請(qǐng)單擊“視圖”菜單上的“解決方案資源管理器”右擊“解決方案資源管理器”中的“頭文件”文件夾并指向“添加”。然后單擊“類”在“VisualC++”類別中,單擊“VisualStudio已安裝的模板”區(qū)域中的“C++”,然后單擊“C++在“C++類向?qū)А敝?,鍵入“Cardgame”作為“類名”,并接受默認(rèn)的文件名,然后單擊和對(duì)編輯區(qū)域中顯示的Cardgame.hintstaticintintstaticintint類型的參數(shù)的公共構(gòu)造函數(shù)原型:Cardgame(intCardgame(int#pragmaonceclass#pragmaonceclassCardgame{intstaticinttotalparticipants;Cardgame(int#pragmaonce行指明編譯器只包含該文件一次。有關(guān)信息,請(qǐng)參見once雙擊“源文件”文件夾中的“Cardgame.cpp”,以int參數(shù)的構(gòu)造函數(shù)添加代碼Cardgame::Cardgame(intCardgame::Cardgame(int{players=p;totalparticipants+=p;cout<<p<<"playershavestartedanewgame.Therearenow<<totalparticipants<<"playersintotal."<<}開始鍵plto時(shí),可以Ctrl-空格鍵,自動(dòng)完成功能將為您完players#include<iostream>usingnamespacestd;#include<iostream>usingnamespacestd;Cardgame::Cardgame(int{players=p;totalparticipants+=p;cout<<p<<"playershavestartedanewgame.Therearenow<<totalparticipants<<"playersintotal."<<}{}#include的說(shuō)明,請(qǐng)參TheincludeDirective。在“項(xiàng)目”菜單上,單擊“添加新項(xiàng)”“源文件”文件夾,指向“添加”。然后單擊“新建項(xiàng)”在“VisualC++”區(qū)域中,選擇“代碼”。然后單擊“C++文件(.cpp)”鍵入“testgames”作為“名稱”,然后單擊“添加”testgames.cpp#include#includeintCardgame::totalparticipants=0;intmain(){Cardgame*bridge=0;Cardgame*blackjack=0;Cardgame*solitaire=0;Cardgame*poker=0;bridge=newCardgame(4);blackjack=newCardgame(8);solitaire=newCardgame(1);deleteblackjack;deletepoker=newCardgame(5);deletesolitaire;deletepoker;return}有關(guān)此源文件中C++關(guān)鍵字的信息newOperatorC++)deleteOperator(C++)。在“生成”菜單上,單擊“生成解決方案” 在本步驟中,您將故意在代碼中引入一個(gè)VisualC語(yǔ)法錯(cuò)誤,以了解什么是編譯錯(cuò)誤,以及如何修復(fù)它。編譯項(xiàng)目時(shí),會(huì)顯示錯(cuò)誤消息以指示所發(fā)生的問(wèn)題的性質(zhì)和位置。IDEtestgames.cppreturnreturn在“生成”菜單上,單擊“生成解決方案”單擊“輸出”窗口中的“轉(zhuǎn)到下一條消息”按鈕(指向右方的綠色箭頭“輸出”窗口中的錯(cuò)誤消息若要查看有關(guān)錯(cuò)誤的幫助信息,請(qǐng)突出顯示錯(cuò)誤,并按F1鍵returnreturn在“生成”菜單上,單擊“生成解決方案”以“調(diào)試”模式solitairesolitaire=new按變量的名稱及其值12即顯示在工具提示窗口中。右擊Cardgame::totalparticipants變量。選擇“表達(dá)式:?totalparticipants?”,并單擊“添在“調(diào)試”菜單上,單擊“逐過(guò)程”,或者按F10示為main(return0;),并單擊“運(yùn)行到光標(biāo)處”。代碼左側(cè)的黃色箭頭指向在Cardgame終止時(shí),Cardgame::totalparticipants數(shù)應(yīng)當(dāng)減小。此時(shí),Cardgame::totalparticipants0Cardgame指針都已刪除,但是“監(jiān)視1”窗口指示Cardgame::totalparticipants等于18。在一個(gè)按更新:200711本假定您具備C++語(yǔ)言的基礎(chǔ)知識(shí)。如果您是剛開始學(xué)習(xí)C++,建議您參閱HerbSchildt編寫的C++Beginner'sGuide(《C++初學(xué)者指南》),該書可從 /fwlink/?LinkId=115303獲得bug若要明白CardgameCardgame右擊“~Cardgame(void)”析構(gòu)函數(shù)并單擊“轉(zhuǎn)到定義”Cardgame終止時(shí)減少totalparticipants,請(qǐng)?jiān)贑ardgame::~Cardgame析構(gòu)totalparticipantstotalparticipants-=cout<<players<<"playershavefinishedtheirgame.Therearenow<<totalparticipants<<"playersintotal."<<}#include"Cardgame.h"#include<iostream>#include"Cardgame.h"#include<iostream>usingnamespacestd;{players=p;totalparticipants+=p;cout<<p<<"playershavestartedanewgame.Therearenow<<totalparticipants<<"playersintotal."<<}}{totalparticipants-=cout<<players<<"playershavefinishedtheirgame.Therearenow<<totalparticipants<<"playersintotal."<<}在“生成”菜單上,單擊“生成解決方案”,或按在“調(diào)試”菜單上單擊“逐過(guò)程”或者F10逐句通過(guò)程序請(qǐng)注意,執(zhí)行每Cardgame構(gòu)造函數(shù)后,totalparticipants的值會(huì)增大。而在刪除每個(gè)指針(并調(diào)用析構(gòu)函數(shù))后,totalparticipants的值會(huì)減小。return語(yǔ)句之前,totalparticipants0。繼續(xù)逐句通過(guò)程序,直到程序退出;或者,在“調(diào)試”菜單上單擊“運(yùn)行”或按F5,允許程序繼續(xù) 中的信息不適用于VisualC++學(xué)習(xí)版說(shuō)我們需要將新項(xiàng)目添加到現(xiàn)有解決方案。此新項(xiàng)目的輸出是setup.exe文件,該文件用于安裝我們 中的信息不適用于VisualC++學(xué)習(xí)版說(shuō)本演練將使用WindowsInstaller來(lái)部署應(yīng)用程序。您還可以使用ClickOnce部署應(yīng)用程序。有關(guān)更多信息,請(qǐng)參見VisualC++應(yīng)用程序的ClickOnce部署。有關(guān)常規(guī)部署的信息,請(qǐng)參見部署應(yīng)用創(chuàng)建安裝項(xiàng)目和在“文件”菜單上,單擊“新建”,再單擊“項(xiàng)目”隨即出現(xiàn)“添加新項(xiàng)目”框StudioInstaller”。將出現(xiàn)“安裝向?qū)А?。單擊“下一步”從向?qū)У摹斑x擇一種項(xiàng)目類型”窗格中,選擇“Windows應(yīng)用程序創(chuàng)建一個(gè)安裝程序”選項(xiàng),并“解決方案資源管理器”中將列出新的gameInstaller項(xiàng)目。此項(xiàng)目將列出應(yīng)用程序依靠的依賴項(xiàng)(如C運(yùn)行庫(kù)或.NETFramework)以及安裝程序中將包括的項(xiàng)目文件。setup.exegameInstaller.msi程序。在計(jì)算機(jī)上雙擊任一文件安裝應(yīng)創(chuàng)建命令行應(yīng)用程序我們已經(jīng)學(xué)習(xí)了VisualStudioIDE,現(xiàn)在可以開始使用VisualC++編寫程序了。學(xué)習(xí)創(chuàng)建的第一個(gè)在本節(jié)中,您將學(xué)習(xí)如何創(chuàng)建C和C++命令行應(yīng)用程序。還將學(xué)習(xí)如何創(chuàng)建不使用擴(kuò)展的標(biāo)準(zhǔn)C和C++程序。如果您希望使用VisualC++創(chuàng)建在其他操作系統(tǒng)上使用的應(yīng)用程序,這將很有用。C++可以使VisualC++2010VisualStudio集成開發(fā)環(huán)(IDE)中創(chuàng)建標(biāo)C++程序。通過(guò)采用此演練中的步驟,您可以創(chuàng)建一個(gè)項(xiàng)目,向該項(xiàng)目添加一個(gè)新文件,修改該文件以添加C代碼,然后使用VisualStudio編譯并運(yùn)行程序。您可以鍵入自己C程序,或者使用示例程序之一。此演練中的示例程序是一個(gè)控制臺(tái)應(yīng)用程序。此應(yīng)用程序使用標(biāo)準(zhǔn)模板庫(kù)(STL)中的set容器。參見/Za、/Ze(禁用語(yǔ)言擴(kuò)展 信息,說(shuō)VisualC++參見/Za、/Ze(禁用語(yǔ)言擴(kuò)展 信息,說(shuō)通過(guò)以下方式創(chuàng)建一個(gè)項(xiàng)目:指向“文件”菜單上的“新建”,然后單擊“項(xiàng)目”在“VisualC++”項(xiàng)目類型窗格中,單擊“Win32”,然后單擊“Win32控制臺(tái)應(yīng)用程序”單擊“確定”創(chuàng)建項(xiàng)目如果未顯示“解決方案資源管理器”,請(qǐng)?jiān)凇耙晥D”菜單上,單擊“解決方案資源管理器”在“解決方案資源管理器”中,右擊“源文件”文件夾,指向“添加”,然后單擊“新建項(xiàng)”++.cpp文件即顯示在“解決方案資源管理器”中的“源文件”文件夾中,并且文件將在VisualStudio編輯器中打開。在編輯器內(nèi)的文件中,鍵入使用標(biāo)準(zhǔn)C++庫(kù)的有效C++程序,或者示例程序之一并將在“生成”菜單上,單擊“生成解決方案”在“調(diào)試”菜單上,單擊“開始執(zhí)行(不調(diào)試)”C++VisualC++包括一個(gè)C++編譯器,可用來(lái)創(chuàng)建從基本VisualC++程序Windows窗體應(yīng)用程通過(guò)按此演練的過(guò)程進(jìn)行操作,您可以通過(guò)使用文本編輯器創(chuàng)建基本的VisualC程序,然后在命令也可以編譯使用VisualStudio集成開發(fā)環(huán)境(IDE)創(chuàng)建的VisualC++程序。有關(guān)信息,請(qǐng)參見演練:在VisualStudio中編譯面向CLR的C++程序(C++)。您可以使用自己的VisualC++程序,而不是鍵入下面步驟中所示的程序。也可以使用其他幫助中的任何VisualC++代碼示例程序。VisualC++打開“VisualStudio2010命令提示”窗口,方法是單擊“開始”,指向“所有程序”、VisualStudio2010”、“VisualStudio工具”,然后單擊“VisualStudio2010命令提示”若要以管理員運(yùn)行“VisualStudio2010命令提示”窗口,請(qǐng)右擊“VisualStudio2010命令notepadbasic.cppEnter。#include#includeint{std::cout<<"ThisisanativeC++program."<<std::endl;return0;}在“文件”菜單上,單擊“保存”這樣就創(chuàng)建了一VisualC++源文件在命令提示符下,鍵clEHscbasic.cppEnter。/EHsc命令行選項(xiàng)指示編譯器啟用C++異常處理。有關(guān)信息,請(qǐng)參見/EH(異常處理模型。cl.exe編譯器將生成一個(gè)名為basic.exe的可執(zhí)行程序。 中具有名稱basic以及任何文件擴(kuò)展名的文件的列表,請(qǐng)鍵入dirbasic.*并按Enter。.obj文件是一個(gè)中間格式文件,可以安全地忽若要運(yùn)basic.exe程序,請(qǐng)鍵入basicEnter。ThisisanativeC++若要關(guān)閉“VisualStudio2010命令提示”窗口,請(qǐng)鍵exitEnter。編譯使用.NET類的VisualC++程序下面的步驟演示如何編譯使用.NETFrameworkVisualC++程序庫(kù)。VisualC編譯器生成的.exeMSIL代碼,而不是可由計(jì)算機(jī)執(zhí)行的指令。按照本過(guò)程中的步驟編譯幫助中的任何VisualC++示例程序。VisualCNET打開“VisualStudio2010命令提示”窗口,方法是單擊“開始”,指向“所有程序”、VisualStudio2010”、“VisualStudio工具”,然后單擊“VisualStudio2010命令提示”若要以管理員運(yùn)行“VisualStudio2010命令提示”窗口,請(qǐng)右擊“VisualStudio2010命令notepadbasicclr.cppEint{ ine("ThisisaVisualC++}在“文件”菜單上,單擊“保存”您已經(jīng)創(chuàng)建了一.NET(Console)VisualC源文件,該文件System命c(diǎn)lclrbasicclr.cpp,并Enter。cl.exebasicclr.exe的可執(zhí)行 中具有名稱basicclr以及任何文件擴(kuò)展名的文件的列表,請(qǐng)鍵入dirbasicclr.*并按Enter。.obj文件是一個(gè)中間格式文件,可以安全地忽.manifest文件是包含有關(guān)程序集的信息的XML文件。(程序集是.NET部署單元,例如.exe程序或.dll組件或庫(kù)。)若要運(yùn)basicclr.exe程序,請(qǐng)鍵basicclrEnter。ThisisaVisualC++若要關(guān)閉“VisualStudio2010命令提示”窗口,請(qǐng)鍵入exitEnterVisualStudioCLRC++在本過(guò)程中,您可以鍵入自己的VisualC++程序,也可以使用示例程序之一。本過(guò)程中使用的示例程序創(chuàng)建一個(gè)名為textfile.txt的文本文件,并將其保存到項(xiàng)目中。VisualStudio創(chuàng)建新項(xiàng)目。在“文件”菜單上,指向“新建”,然后單擊“項(xiàng)目”在“VisualC++項(xiàng)目類型”中單擊“CLR”,然后單擊“CLR空項(xiàng)目”單擊“確定”創(chuàng)建新項(xiàng)目如果“解決方案資源管理器”不可見,請(qǐng)單擊“視圖”菜單上的“解決方案資源管理器”在解決方案資源管理器中右擊“源文件”文件夾,指向“添加”并單擊“新建項(xiàng)...”單擊“C++文件(.cpp)”,鍵入一個(gè)文件名,然后單擊“添加”.cpp文件即顯示在“解決方案資源管理器”中的“源文件”文件夾中,并且,在鍵入要包含在該在VisualStudio中,在新創(chuàng)建的選項(xiàng)卡中單擊并鍵入有效的VisualC++程序,或者并且gcnew返回一個(gè)句柄(^)而不是指針(*):StreamWriter^sw=gcnew有關(guān)新VisualC++語(yǔ)法的信息,請(qǐng)參見LanguageFeaturesforTargetingtheCLR在“生成”菜單上,單擊“生成解決方案”如果進(jìn)行了更改,并在未執(zhí)行生成的情況下運(yùn)行該程序,則框可能指示該項(xiàng)目已過(guò)期。如果VisualStudio始終使用文件的當(dāng)前版本,并且在每次生成應(yīng)用程序時(shí)不發(fā)出提示,請(qǐng)?jiān)趩卧凇罢{(diào)試”菜單上,單擊“開始執(zhí)行(不調(diào)試)”textfile.txt文本文件現(xiàn)在位于您的項(xiàng) CLR項(xiàng)目模板會(huì)自動(dòng)設(shè)置/clr編譯器選項(xiàng)。若要驗(yàn)證這一點(diǎn),請(qǐng)?jiān)凇敖鉀Q方案資源管理器”說(shuō)編譯CVisualC2010中包C編譯器,可用來(lái)創(chuàng)建從基本的C程序到WindowsAPI應(yīng)用程序的您可以使用自己的C程序,而不是鍵入此演練中所示的示例程序。也可以使用幫助中包含的任何默認(rèn)情況下,VisualC++編譯器將.c結(jié)尾的所有文件視C源代碼.cpp結(jié)尾的所有文件++您必須了C++語(yǔ)言的基礎(chǔ)知識(shí)。如果您剛剛開C++,建議閱HerbSchildt編寫的創(chuàng)建C源文件并在命令行上對(duì)其進(jìn)行編譯 VisualStudio2010”和“VisualStudio工具”,然后單擊“VisualStudio2010命令提示”?!癡isualStudio2010命令提示”會(huì)自動(dòng)設(shè)置C編譯器和所需的任何庫(kù)的正確路徑。應(yīng)使用它而不是 “VisualStudio2010命令提示”會(huì)自動(dòng)設(shè)置C編譯器和所需的任何庫(kù)的正確路徑。應(yīng)使用它而不是 說(shuō)notepadsimple.cEnter。#include#includeint{printf("ThisisanativeCprogram.\n");return0;}在“文件”菜單上,單擊“保存”,以創(chuàng)Cclsimple.c,并Entercl.exe編譯器將生成一個(gè)可執(zhí)行程Simple.exe(R)(R)32-bitC/C++OptimizingCompilerVersion16.00forCopyrightCopyrightCorporation.All(R)IncrementalLinkerVersionCopyrightCorporation.All若要查看 中的所有文件的列表,請(qǐng)鍵入dirsimple.*并按Enter若要運(yùn)Simple.exe,請(qǐng)鍵simpleEnter。ThisisanativeCexitEnterWindows應(yīng)用程序現(xiàn)在我們VisualStudioIDE和命令行應(yīng)用程序,下面將學(xué)習(xí)如何創(chuàng)Windows應(yīng)用程序。使用VisualC++,可以通過(guò)使用多種不同的技術(shù)來(lái)創(chuàng)建Windows應(yīng)用程序,如WindowsAPI(也稱為Win32API)和.NETFramework。在本節(jié)中,通過(guò)使用Win32API和.NETFramework創(chuàng)建兩個(gè)簡(jiǎn)單的Windows應(yīng)用程序。我們還將通過(guò)使.NETFrameworkWindows窗體控件,最后將通DirectX創(chuàng)建一個(gè)簡(jiǎn)Win32Win32API(也稱為WindowsAPI)是用Windows應(yīng)用程序的基C的框架,自1.0以來(lái)就已存在。在WindowsAPIAPI的大量文檔在本過(guò)程中,創(chuàng)建向窗口顯示“o,World!”的簡(jiǎn)單Win32應(yīng)用程序。過(guò)程中的步驟對(duì)于所有Win32應(yīng)用程序都是相同的。完成此過(guò)程后,您可以將這里創(chuàng)建的代碼用作創(chuàng)建任何其他Win32應(yīng)用Win32在“文件”菜單上,單擊“新建”,然后單擊“項(xiàng)目...”項(xiàng)目”,如 在“Win32應(yīng)用程序向?qū)А敝?,選擇“下一步”在“Win32應(yīng)用程序向?qū)А敝?,在“?yīng)用程序類型”下選擇“Windows應(yīng)用程序”。在“附加選項(xiàng)”Win32CC應(yīng)用程序必須具有一個(gè)main函數(shù)。此函數(shù)是應(yīng)用程序的起始點(diǎn)。類似地,在Win32應(yīng)用程序中,每個(gè)應(yīng)用程序必須具有一個(gè)WinMain函數(shù)。WinMain的語(yǔ)法如下所示:intintWINAPIWinMain(HINSTANCEHINSTANCEhPrevInstance,LPSTRlpCmdLine,int有關(guān)此函數(shù)的參數(shù)和返回值的解釋,請(qǐng)參WinMain#include<stdlib.h>#include<string.h>#includeWinMainWin32應(yīng)用程序還必須具有第二個(gè)函數(shù)(WndProc),它代表窗口過(guò)程。WndProc的語(yǔ)法如下所示:LRESULTLRESULTCALLBACKWndProc(HWND, RAM,WinMainWinMainWNDCLASSEX類型的窗口類結(jié)構(gòu)。此結(jié)構(gòu)包含有關(guān)窗口典型的WNDCLASSEX結(jié)構(gòu)如下:WNDCLASSEXWNDCLASSEXwcex.cbSize==CS_HREDRAW| =====LoadIcon(hInstance,=LoadCursor(NULL,wcex.hbrBackground= =NULL;wcex.lpszClassName=szWindowClass;,請(qǐng)參見現(xiàn)在已經(jīng)創(chuàng)建了窗口類,接下來(lái)您必須它。使用RegisterClassEx函數(shù),并將窗口類結(jié)構(gòu)ifif{_T("CalltoRegisterClassEx_T("Win32GuidedTour"),return}staticstaticTCHARszWindowClass[]=staticTCHARszTitle[]=_T("Win32GuidedTour//TheparameterstoCreateWindow//szWindowClass:thenameofthe//szTitle:thetextthatappearsinthetitle//WS_OVERLAPPEDWINDOW:thetypeofwindowto//CW_USEDEFAULT,CW_USEDEFAULT:initialposition(x,//500,100:initialsize(width,//NULL:theparentofthis//NULL:thisapplicationdowsnothave//hInstance:thefirstparameterfrom//NULL:notusedinthisapplicationHWNDhWnd=CreateWindow(500,100,if{_T("CalltoCreateWindow_T("Win32GuidedTour"),return}此函數(shù)返回HWND,它是某個(gè)窗口的句柄。有關(guān)信息,請(qǐng)參見Windows數(shù)據(jù)類型////TheparameterstoShowWindow//hWnd:thevaluereturnedfrom//nCmdShow:thefourthparameterfromWinMain息后,將該消息調(diào)度到WndProc函數(shù),以便進(jìn)行處理。消息循環(huán)類似于:MSGMSGwhile(GetMessage(&msg,NULL,0,{ }return(int) 有關(guān)消息循環(huán)中使用的結(jié)構(gòu)和函數(shù)的更多參見MSGGetMessage您剛才完成的步驟為大多數(shù)Win32應(yīng)用程序所共用。有關(guān)此應(yīng)用程序所需要的include指令此時(shí),WinMain函數(shù)應(yīng)該與下面的內(nèi)容類似intintWINAPIWinMain(HINSTANCEHINSTANCEhPrevInstance,LPSTRlpCmdLine,int{WNDCLASSEXwcex.cbSize==CS_HREDRAW| = = =0; =hInstance; =LoadCursor(NULL,IDC_ARROW);wcex.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); =NULL;wcex.lpszClassName= if{_T("CalltoRegisterClassEx_T("Win32GuidedTour"),return}hInst=hInstance;//Storeinstancehandleinourglobal//TheparameterstoCreateWindow//szWindowClass:thenameofthe//szTitle:thetextthatappearsinthetitle//WS_OVERLAPPEDWINDOW:thetypeofwindowto//CW_USEDEFAULT,CW_USEDEFAULT:initialposition(x,//500,100:initialsize(width,//NULL:theparentofthis//NULL:thisapplicationdowsnothave //hInstance:thefirstparameterfrom//NULL:notusedinthisHWNDhWnd=CreateWindow(500,100,if{_T("CalltoCreateWindow_T("Win32GuidedTour"),return}//TheparameterstoShowWindow//hWnd:thevaluereturnedfrom//nCmdShow:thefourthparameterfromWinMain//MainmessageMSGwhile(GetMessage(&msg,NULL,0,{{ }return(int) }WndProcWndProcSwitch函數(shù)實(shí)現(xiàn)此操作PAINTSTRUCTPAINTSTRUCTHDCTCHARgreeting[]= o,switch{casehdc=BeginPaint(hWnd,//Hereyourapplicationislaidout.//Forthisintroduction,wejustprintout" //inthetopleft5,5,greeting,//Endapplication-specificlayoutsection.EndPaint(hWnd,&ps);}WndProc函數(shù)如下LRESULTLRESULTCALLBACKWndProc(HWNDhWnd,UINT ram,LPARAM{PAINTSTRUCTHDCTCHARgreeting[]= o,switch{casehdc=BeginPaint(hWnd,//Hereyourapplicationislaidout.//Forthisintroduction,wejustprintout o,World!"http://inthetopleftcorner.TextOut(hdc,5,5,greeting,//Endapplicationspecificlayoutsection.EndPaint(hWnd,&ps);casereturnDefWindowProc(hWnd,message, ram,lParam);}return}應(yīng)用程序編譯時(shí)沒有任何錯(cuò)誤,您可以通過(guò)按F5來(lái)運(yùn)行該應(yīng)用程序。在屏幕的左上角附近將顯示帶有文本“o,World!”的簡(jiǎn)單窗口。代// //compilewith:/D_UNICODE/DUNICODE/DWIN32/D_WINDOWS#include<stdlib.h>#include<string.h>#include<tchar.h>//Global//Themainwindowclassname.staticTCHARszWindowClass[]=//Thestringthatappearsintheapplication'stitlebar.staticTCHARszTitle[]=_T("Win32GuidedTourApplication");HINSTANCE//Forwarddeclarationsoffunctionsincludedinthiscodemodule:LRESULTCALLBACKWndProc(HWND,UINT, RAM,LPARAM);intWINAPIWinMain(HINSTANCEHINSTANCEhPrevInstance,LPSTRlpCmdLine,int{WNDCLASSEXwcex.cbSize= =CS_HREDRAW|CS_VREDRAW; =WndProc; =0; =0; =LoadIcon(hInstance,MAKEINTRESOURCE(IDI_APPLICATION)); =LoadCursor(NULL,IDC_ARROW);wcex.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); =NULL;wcex.lpszClassName= =LoadIcon(wcex.hInstance,if{_T("CalltoRegisterClassEx_T("Win32GuidedTour"),return}hInst=hInstance;//Storeinstancehandleinourglobal//TheparameterstoCreateWindow//szWindowClass:thenameofthe//szTitle:thetextthatappearsinthetitle//WS_OVERLAPPEDWINDOW:thetypeofwindowto//CW_USEDEFAULT,CW_USEDEFAULT:initialposition(x,//500,100:initialsize(width,//NULL:theparentofthis//NULL:thisapplicationdoesnothave //hInstance:thefirstparameterfrom//NULL:notusedinthisapplicationHWNDhWnd=CreateWindow(CW_USEDEFAULT,CW_USEDEFAULT,500,100,if{_T("CalltoCreateWindow_T("Win32GuidedTour"),return}//TheparameterstoShowWindow//hWnd:thevaluereturnedfrom//nCmdShow:thefourthparameterfromWinMain//MainmessageMSGwhile(GetMessage(&msg,NULL,0,{ }return(int) }//FUNCTION:WndProc(HWND, RAM,//PURPOSE:Processesmessagesforthemain// -Paintthemain//WM_DESTROY-postaquitmessageandLRESULTCALLBACKWndProc(HWNDhWnd,UINT ram,LPARAM{PAINTSTRUCTHDCHDCTCHARgreeting[]= o,switch{casehdc=BeginPaint(hWnd, //inthetopleftcorner.TextOut(hdc,5,5,greeting,//Endapplication-specificlayoutsection.EndPaint(hWnd,&ps);caseWM_DESTROY:returnDefWindowProc(hWnd,message, ram,lParam);}return}通過(guò)使用.NETFrameworkWindows窗體應(yīng)用程序(C++)使用VisualC++開發(fā)Windows窗體項(xiàng)目,通常與使用任何其他.NET語(yǔ)言(如VisualBasic 對(duì)于在以下說(shuō)明中使用的某VisualStudio用戶界面元素,您的計(jì)算機(jī)可能會(huì)顯示不同的名稱或位置。這些元素取決于您所使用的VisualStudio版本和您所使用的設(shè)置。有關(guān)信息, 對(duì)于在以下說(shuō)明中使用的某VisualStudio用戶界面元素,您的計(jì)算機(jī)可能會(huì)顯示不同的名稱或位置。這些元素取決于您所使用的VisualStudio版本和您所使用的設(shè)置。有關(guān)信息,請(qǐng)參見使說(shuō)Windows在“文件”菜單上,單擊“新建”,然后單擊“項(xiàng)目”窗體應(yīng)用程序” 隨即打Windows窗體設(shè)計(jì)器,顯示所創(chuàng)建項(xiàng)目的“Form1”,如下所示如果看不到“工具箱”窗口,請(qǐng)?jiān)凇耙晥D”菜單上單擊“工具箱”將“工具箱”中的三個(gè)控件放到“Form1”設(shè)計(jì)Label控件拖動(dòng)到靠近“Form1”左上角的位置DateTimePicker控件拖動(dòng)到LabelButton控件拖動(dòng)到窗體底部靠近中心點(diǎn)的位置。 Button控件上Click事件DateTimePicker控件上ValueChanged事件雙擊按鈕以添加按鈕Click事件處理程序(Click事件說(shuō)到在鍵入范圍解析運(yùn)算符(::)之后,In liSense將顯示可能的有效選項(xiàng)的列表。您可以從該列表中選擇一個(gè)選項(xiàng)并按Tab,雙擊它,或者繼續(xù)鍵入。[DateTimePicker控件若要DateTimePickerValueChanged事件處理程序,請(qǐng)單擊“屬性”窗口中的閃ValueChangedValueChangedDateTimePicker控件的默認(rèn)事件。因此,您還可DateTimePicker控說(shuō)將光標(biāo)移動(dòng)dateTimePicker1_ValueChanged方法的左大括號(hào)之后,按Enter鍵,label1->Text=String::Format("Newdate0dateTimePicker1->Text);當(dāng)應(yīng)用程序的用戶選擇了新的日期時(shí),的Text屬性將設(shè)置為后跟DateTimePicker的Text屬性的字符串"Newdate:"。VisualStudio提供了幾個(gè)可以簡(jiǎn)化代碼鍵入的功能當(dāng)鍵入箭頭運(yùn)算符(->)時(shí) String::Fo并按Ctrl-空格鍵或Tab,VisualStudio將自動(dòng)完成鍵入在“生成”菜單中,單擊“生成解決方案”如果存在錯(cuò)誤,請(qǐng)單擊“輸出”窗口中的“轉(zhuǎn)到下一條消息”按鈕。錯(cuò)誤消息文本顯示在在“調(diào)試”菜單中,單擊“不進(jìn)行調(diào)試直接運(yùn)行”測(cè)試該應(yīng)用程序,方法是單擊DateTimePicker上的向下箭頭,選擇一個(gè)日期。文本更改WindowsWindows窗體控件是可以添Windows窗體應(yīng)用程序(面向公共語(yǔ)言運(yùn)行GUI應(yīng)用程序)的組件。使用VisualC++編寫的Windows窗體應(yīng)用程序通過(guò)新的VisualC++語(yǔ)法使用.NETFramework類和其他.NET功能。還將創(chuàng)建一個(gè)Windows窗體應(yīng)用程序項(xiàng)目來(lái)測(cè)試該控件。在本節(jié)中,您將使用“Windows窗體控件”項(xiàng)目模板創(chuàng)建一個(gè)用戶控件,該控件是一個(gè)包含其他控件的復(fù)您也可以通過(guò)直接Control類(代碼負(fù)責(zé)繪制控件)或Component類(無(wú)UI的控件)派生一個(gè)類來(lái)創(chuàng)建Windows窗體控件。Windows在“文件”菜單上,單擊“新建”,再單擊“項(xiàng)目…”窗格中選擇“Windows窗體控件庫(kù)”。 Windows窗體設(shè)計(jì)器將打開并顯示一個(gè)區(qū)域,您可以將要放置到控件設(shè)計(jì)圖面上的控件添加到在本步驟中,您要將一Label控件添加到控件設(shè)計(jì)圖面中。然后,設(shè)置控件本身及其Label控如果沒有顯示“屬性”窗口,請(qǐng)單擊“視圖”菜單上的“屬性窗口”在,如果“工具箱”窗口不可見,請(qǐng)從“視圖”菜單中選擇“工具箱”Label控件從“工具箱”拖動(dòng)到設(shè)計(jì)圖面上,將其放置在靠近控件中心的位置。通過(guò)雙擊,為的Click事件(的默認(rèn)事件)添加事件處理程序 說(shuō)將光標(biāo)移動(dòng)到label1_ClickEnter并鍵入以下內(nèi)容intinttemp=System::Int32::Parse(label1->Text);label1->Text=在鍵入范圍解析運(yùn)算符(::)、點(diǎn)運(yùn)算符(.)或箭頭運(yùn)算符(->)之后,InliSense將顯示有效選項(xiàng)的列表。您可以通過(guò)突出顯示某個(gè)項(xiàng)并按Tab或Enter,或者通過(guò)雙擊某個(gè)項(xiàng),將該項(xiàng)此外,當(dāng)鍵入方法的左括號(hào)時(shí),VisualStudio將顯示該方法的每個(gè)重載的有效參數(shù)類型。將光標(biāo)放置在clickcounterControl.h文件頂部的第一個(gè)public后,按propertypropertyboolClickAnywhereboolboolget()return(label1->Dock==}voidset(bool{iflabel1->Dock=label1->Dock=}}當(dāng)控件的ClickAnywhere屬性設(shè)置為true時(shí),的Dock屬性將設(shè)置為當(dāng)ClickAnywhere屬性為false(默認(rèn)值)時(shí),的Dock屬性將設(shè)置DockStyle::None。不填充整個(gè)控件,并且單擊控件時(shí),必須單擊邊框內(nèi)部才會(huì)的Click事件,使數(shù)字遞增。生成用戶控件。在“生成”菜單上,選擇“生成解決方案”如果沒有錯(cuò)誤,將生成文件名為clickcounter.dllWindows窗體控件。您可以在項(xiàng)目目您所創(chuàng)建的用于測(cè)試控件Windows窗體應(yīng)您所創(chuàng)建的用于測(cè)試控件Windows窗體應(yīng)用程序可以使VisualC++或其他.NET語(yǔ)言(C#VisualBasic)來(lái)編寫說(shuō)Windows在“文件”菜單上選擇“新建”,然后單擊“項(xiàng)目…”也可以通過(guò)以下方法將項(xiàng)目添加到解決方案中:右擊“解決方案資源管理器”controlandtestapp解窗格中選擇“Windows窗體應(yīng)用程序”。Windows窗體設(shè)計(jì)器,其中顯示一個(gè)名為“Form1”添加對(duì)控件的。右擊“解決方案資源管理器”中的testapp項(xiàng)目,然后單擊“”后選擇clickcounter項(xiàng)目。單擊“確定”兩次。如果看不到“工具箱”窗口,請(qǐng)從“視圖”菜單中選擇“工具箱” clickcounter控件即出現(xiàn)在“.NETFramework組件”列表中,并帶有一個(gè)選中標(biāo)記。單擊“確從“工具箱”拖出clickcounte控件的兩個(gè)實(shí)例。將它們放在窗體上,避免使其。如果看不到“屬性”窗口,請(qǐng)從“視圖”菜單選擇“屬性”如果屬性是按類別組織的,“ClickAnywhere”屬性將位于“屬性窗口”的“雜項(xiàng)”clickcounter控件的另一個(gè)實(shí)例的“ClickAnywhere”false(默認(rèn)值testapp項(xiàng)目,并選擇“設(shè)為啟動(dòng)項(xiàng)目”從“生成”菜單中選擇“重新生成解決方案”從“調(diào)試”菜單中選擇“啟動(dòng)調(diào)試”單擊“ClickAnywhere”設(shè)置true的控件單擊“ClickAnywhere”設(shè)置false的控件1.單擊“Form1”窗口右上角的“關(guān)閉”DirectXC非常強(qiáng)大和靈活,所以它是創(chuàng)建游戲的優(yōu)秀過(guò)使VisualCDirectX,您可以用本機(jī)代碼或托管代碼編寫游戲。此靈活性允許您在最熟悉的平臺(tái)上創(chuàng)建游戲。若要使用DirectX創(chuàng)建游戲,您必須從以下位置安裝DirectXSDK:DirectXDeveloperCenter(DirectX開發(fā)人員中心SDK后,您會(huì)發(fā)現(xiàn)幾個(gè)示例,這些示例將幫助您了解DirectX編程的入門知識(shí)。在MSDN上查看VisualC++ExpressEdition網(wǎng)頁(yè),獲得可以、學(xué)習(xí)和隨意修改的現(xiàn) II.NET的完整源代碼。創(chuàng)建可重用代碼現(xiàn)在我們學(xué)習(xí)了如何使用VisualStudioIDE以及如何創(chuàng)建命令行應(yīng)用程序和Windows應(yīng)用程包含相關(guān)類和算法的庫(kù)。例如,VisualC++CC++應(yīng)用程序都可以使用的庫(kù),如CC++果沒有這些庫(kù)CC++應(yīng)用程序沒有寫入控制臺(tái)或確定當(dāng)前日CC++應(yīng)用程序都可能用到前面提到的庫(kù)之一。您還可以創(chuàng)建任何應(yīng)用程序都可以使用的自己的類和算法庫(kù)。使用VisualC++,您可以創(chuàng)建三種類型的庫(kù):動(dòng)態(tài)庫(kù)(DLL)通常,如果創(chuàng)建可供本機(jī)C++代碼使用的庫(kù),則可以創(chuàng)建動(dòng)態(tài)庫(kù)或靜態(tài)庫(kù)。有關(guān)如何確定應(yīng)創(chuàng)建何種類型庫(kù)的信息,請(qǐng)參見DLL。如果要?jiǎng)?chuàng)建可供C++/CLI或任何其他.NET語(yǔ)言(如C#或VisualBasic)使用的庫(kù),則應(yīng)創(chuàng)建托管程序集。 創(chuàng)建和使用動(dòng)態(tài)庫(kù)創(chuàng)建的第一種類型的庫(kù)是動(dòng)態(tài)庫(kù)(DLL)。使用DLL是一種重用代碼的絕佳方式。您不必在自己創(chuàng)建的每個(gè)程序中重新實(shí)現(xiàn)同一例程,而只需對(duì)這些例程編寫一次,然后從需要該功能的應(yīng)用程序 庫(kù)(DLL)項(xiàng)目 創(chuàng)建動(dòng)態(tài)庫(kù)的應(yīng)用程序創(chuàng)建新的動(dòng)態(tài)庫(kù)(DLL)項(xiàng)從“文件”菜單中,選擇“新建”,然后選擇“項(xiàng)目…”在“模板”窗格中,選擇“Win32控制臺(tái)應(yīng)用程序”如DynamicLibrary,并將其鍵入“解決方案名稱”字段。單擊“確定”啟動(dòng)Win32應(yīng)用程序向?qū)?。在“Win32應(yīng)用程序向?qū)А笨虻摹案攀觥表?yè)中,單“下一步”在“Win32應(yīng)用程序向?qū)А敝械摹皯?yīng)用程序設(shè)置”頁(yè)中,選擇“應(yīng)用程序類型”下的“DLL”(如果可使用向?qū)?chuàng)建DLL項(xiàng)目。您可以稍后對(duì)此進(jìn)行更改,以將項(xiàng)目編譯為DLL。在 應(yīng)用程序向?qū)А钡摹皯?yīng)用程序設(shè)置”頁(yè)中,選擇“附加選項(xiàng)”下的“空項(xiàng)目”單擊“完成”向動(dòng)態(tài)庫(kù)添加別”窗格中,選擇“VisualC++”下的“代碼”。在“模板”窗格中選擇“頭文件(.h)”。為頭文件選擇一個(gè)名稱,如MathFuncsDll.h,并單擊“添加”。將顯示一個(gè)空白文件。////namespace{class{//Returnsa+staticdeclspec(dllexport)doubleAdd(doublea,double//Returnsa-staticdeclspec(dllexport)doubleSubtract(doublea,double//Returnsa*staticdeclspec(dllexport)doubleMultiply(doublea,double//Returnsa///ThrowsDivideByZeroExceptionifbisstaticdeclspec(dllexport)doubleDivide(doublea,double}請(qǐng)注意此代碼方法中的declspec(dllexport)修飾符。這些修飾符使DLL能夠?qū)С鲈摲椒ㄒ怨┢渌麘?yīng)用程序使用。有關(guān)信息,請(qǐng)參見dllexport,dllimport。別”窗格中,選擇“VisualC++”下的“代碼”。在“模板”窗格中,選擇“C++文件(.cpp)”。為源文件選擇一個(gè)名稱,如MathFuncsDll.cpp,并單擊“添加”。將顯示一個(gè)空白文件。//////compilewith:/EHsc#include#includeusingnamespacenamespace{doubleMyMathFuncs::Add(doublea,double{returna+}doubleMyMathFuncs::Subtract(doublea,double{returna-}doubleMyMathFuncs::Multiply(doublea,double{returna*}doubleMyMathFuncs::Divide(doublea,double{if(b=={thrownewinvalid_argument("bcannotbe}}returna/}}如果您從命令行生成項(xiàng)目,請(qǐng)使用/LD編譯器選項(xiàng)指定輸出文件應(yīng)為DLL。有 說(shuō)如果您從命令行生成項(xiàng)目,請(qǐng)使用/LD編譯器選項(xiàng)指定輸出文件應(yīng)為DLL。有 說(shuō)序使用的DLL。有關(guān)DLL的詳細(xì)信息,請(qǐng)參見DLL。創(chuàng)建動(dòng)態(tài)庫(kù)的應(yīng)用程 在“模板”窗格中,選擇“Win32控制臺(tái)應(yīng)用程序”單擊“確定”啟動(dòng)“Win32應(yīng)用程序向?qū)А?。在“Win32應(yīng)用程序向?qū)А笨虻摹案攀觥表?yè)中,單“下一步”在 應(yīng)用程序向?qū)А钡摹皯?yīng)用程序設(shè)置”頁(yè)中,選擇“應(yīng)用程序類型”下的“控制臺(tái)應(yīng)用程序”在 應(yīng)用程序向?qū)А钡摹皯?yīng)用程序設(shè)置”頁(yè)中,清除“附加選項(xiàng)”下的“預(yù)編譯頭”復(fù)選框按“完成”若要使用在動(dòng)態(tài)庫(kù)中創(chuàng)建的算術(shù)例程,則必須該庫(kù)。若要執(zhí)行此操作,請(qǐng)?jiān)诮鉀Q方案資源管理器中選擇MyExecRefsDll項(xiàng)目,然后從“項(xiàng)目”菜單中選擇“...”。在“屬性頁(yè)”框框的信息,請(qǐng)參見“<Projectname>屬性頁(yè)”框->“通用屬性”->“框架和”。顯示“添加”框。此框列出了所有可以的庫(kù)?!绊?xiàng)目”選項(xiàng)卡列出了當(dāng)前解決方案若要?jiǎng)討B(tài)庫(kù)的頭文件,必須修改包含 MathFuncsDll.h頭文件所在位置的路徑。可執(zhí)行文件僅在運(yùn)行時(shí)加載動(dòng)態(tài)庫(kù)。必須告訴系統(tǒng)在哪里查找“MathFuncsDll.dll”。您可以通過(guò)使用PATH環(huán)境變量做到這一點(diǎn)。為此,請(qǐng)?jiān)凇皩傩皂?yè)”框中展開“配置屬性”節(jié)點(diǎn),并選擇“調(diào)試”。在“環(huán)境”旁邊鍵入以下內(nèi)容:PATH=<MathFuncsDll.dll文件的路徑>,其中VisualStudio運(yùn)行可執(zhí)行文件,則必須在命令提示符處手動(dòng)更新setPATH=%PATH%;<MathFuncsDll.dll文件的路徑<MathFuncsDll.dll文件的路徑VisualStudio運(yùn)行可執(zhí)行文件,則必須在命令提示符處手動(dòng)更新setPATH=%PATH%;<MathFuncsDll.dll文件的路徑<MathFuncsDll.dll文件的路徑>應(yīng)替換MathFuncsDll.dll的實(shí)際位置說(shuō)//////compilewith:/EHsc/link#include#includeusingusingnamespaceint{doublea=7.4;intb=99;cout<<"a+b="<<MathFuncs::MyMathFuncs::Add(a,b)<<endl;cout<<"a-b="<<MathFuncs::MyMathFuncs::Subtract(a,b)<<endl;cout<<"a*b="<<MathFuncs::MyMathFuncs::Multiply(a,b)<<endl;cout<<"a/b="<<MathFuncs::MyMathFuncs::Divide(a,b)<<endl;return}通過(guò)從“生成”菜單中選擇“生成解決方案”若要運(yùn)行項(xiàng)目,請(qǐng)選擇“調(diào)試”菜單中的“開始執(zhí)行(不調(diào)試)”創(chuàng)建的下一個(gè)庫(kù)類型是靜態(tài)(LIB)。使用靜態(tài)庫(kù)是重用代碼的一種絕佳方式。您不必在自己創(chuàng)建從“文件”菜單中,選擇“新建”,然后選擇“項(xiàng)目...”在“模板”窗格中,選擇“Win32控制臺(tái)應(yīng)用程序”個(gè)名稱(例如StaticLibrary),并將該名稱輸入“解決方案名稱”字段。按“確定”啟動(dòng)“Win32應(yīng)用程序向?qū)А薄T凇癢in32應(yīng)用程序向?qū)А笨虻摹案攀觥表?yè)中,按“下在 應(yīng)用程序向?qū)А钡摹皯?yīng)用程序設(shè)置”頁(yè)中,選擇“應(yīng)用程序類型”下的“靜態(tài)庫(kù)”在 應(yīng)用程序向?qū)А钡摹皯?yīng)用程序設(shè)置”頁(yè)中,清除“附加選項(xiàng)”下的“預(yù)編譯頭”復(fù)選框按“完成”別”窗格中,選擇“VisualC++”下的“代碼”。從“模板”窗格中選擇“頭文件(.h)”。為頭文件選擇一個(gè)名稱(例如MathFuncsLib.h),并按“添加”。將顯示一個(gè)空白文件。////namespace{class{{//Returnsa+staticdoubleAdd(doublea,double//Returnsa-staticdoubleSubtract(doublea,double//Returnsa*staticdoubleMultiply(doublea,double//Returnsa///ThrowsDivideByZeroExceptionifbis0staticdoubleDivide(doublea,double}別”窗格中,選擇“VisualC++”下的“代碼”。從“模板”窗格中,選擇“C++文件(.cpp)”。為源文件選擇一個(gè)名稱(例如MathFuncsLib.cpp),并按“添加”。將顯示一個(gè)空白文件。MyMathFuncs//////compilewith:/c//post-buildcommand:lib#include#includeusingusingnamespacenamespace{doubleMyMathFuncs::Add(doublea,double{returna+}doubleMyMathFuncs::Subtract(doublea,double{returna-}doubleMyMathFuncs::Multiply(doublea,double{returna*}doubleMyMathFuncs::Divide(doublea,double{if(b=={thrownewinvalid_argument("bcannotbe}returna/}}/cCl.exe編(clcEHscMathFuncsLib.cpp)。這將創(chuàng)建名為“MathFuncsLib.obj”的對(duì)象文件。有關(guān)信息,請(qǐng)參見/c(在不的情況下進(jìn)行編譯。接著,使用庫(kù)管理器Lib.exe

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論