版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、IntelVisualFortran與VisualStudio集成的若干問題2009/01/1110:12集成集成的集成的成氐航:illedproduet:inidi謙;IFdir&ian匚亦卩遼已廠&dlidnMicros(?ftVisualC+200562641117roduatdrtai1e:IIInUl(R)FortranCompilerforMicroxoftVisud.IIStudio2005,10.1.4159.2005,Copyritht(C)2002-2006InttlCorportiionWarning:Thieeamputerprogramisp
2、rotectedbycopyrightlaw沁dinternationaltreaties.Unauthorizedreproductionordistributionofthieprogram,oranyportionofit,mayresultinseverecivilandcriminalpenaltiEjandwillbeprosecutedtothemaximuirieKtentpossibleunderthe1aw.與的,則說明集成并未成的集成成的成問題將電腦重新啟動,按F8進入安裝模式,在DOS窗口中輸入如下命令:C:WINDOWSsystem32secedit/configur
3、e/cfg%windir%repairsecsetup.inf/dbsecsetup.sdb/verbose等到100%的時候,重新啟動電腦。此時再次注冊VFProj.dll就會成功。再次啟動VS2005就會發(fā)現(xiàn)已經(jīng)集成成功了。另外使用中文版的VS2005也有可能集成不成功,解決方法為:在非英語版本的VisualStudio2005中集成IntelFortran10會遇到這個問題0VisualStudio2003不會遇到。解決辦法如下:InstallingIntoaNon-EnglishVersionofMicrosoftVisualStudio2005*Ifyouareusinganon-E
4、nglishversionofMicrosoftVisualStudio2005andhaveinstalledtheIntelVisualFortranIntegrationsintoMicrosoftVisualStudio,thereisanadditionalprocedureyoumustfollowinordertomaketheintegrationsusable.ThisdoesnotapplytoMicrosoftVisualStudio.NET2003.YoumustfirstidentifytheLocaleIDthatMicrosoftusestoidentifyyou
5、rlanguagelocale.Forexample,theIDforEnglishis1033andtheIDforJapaneseis1041.YoucanfindtheLocaleIDforyourversionofMicrosoftVisualStudio2005bylookingforafolderwhosenameisafourorfivedigitnumberinProgramFilesMicrosoftVisualStudio8Common7IDE.ThenumberisyourLocaleID.Ineachofthefollowingfolders:ProgramFilesM
6、icrosoftVisualStudio8Common7IDEProjectTemplatesIntelFortranCOMServerProgramFilesMicrosoftVisualStudio8Common7IDEProjectTemplatesIntelFortranConsoleApplicationProgramFilesMicrosoftVisualStudio8Common7IDEProjectTemplatesIntelFortranLibraryProgramFilesMicrosoftVisualStudio8Common7IDEProjectTemplatesInt
7、elFortranQuickWinApplicationProgramFilesMicrosoftVisualStudio8Common7IDEProjectTemplatesIntelFortranWindowingApplicationyouwillfindafoldernamed1033.Makeacopyofthe1033folder(anditscontents)andrenamethefoldertobethatofyourLocaleID(中文的ID是:2052).Forexample,ifyouhaveaGermanversionofVisualStudio2005,youwo
8、uldmakeacopyofthe1033folderineachoftheabovefoldersandrenamethecopy1031(theLocaleIDforGerman-Germany)Repeatthisstepforeachofthefivefolderslistedabove.Afterthefoldercopyisdone,openaFortranBuildEnvironmentcommandwindow(StartAllProgramsIntel(R)SoftwareDevelopmentToolsIntel(R)FortranCompiler10.0.xxxFortr
9、anBuildEnvironmentforIA-32Applications.Inthatcommandwindow,typethecommand:devenv/setupThiswillproperlyregistertheFortranintegration.Inafutureupdatetotheproductthesecopieswillbemadeautomaticallyatinstalltime.Weapologizefortheinconvenience0二.VC+執(zhí)行CMD錯誤VS2005C+編譯一個程序,竟然出現(xiàn)errorPRJ0003:Errorspawningcmd.e
10、xe依下面方法便可解決:tools=Options=ProjectsandSolutions-VC+Directoriespage在$(PATH)的下一行寫上:$(SystemRoot)System32;$(SystemRoot);$(SystemRoot)System32wbem如圖:ViSstuuadlioBug法新增FortranVisuSatludioSP1Windows-ffl-ffl-ltl-pdateVC與VisualFortran使用Console全屏窗口2008/12/2419:39成哥哥問我怎么把ConsoleConsole窗口全屏,需要使用數(shù)在較低的SDK中并沒有列為全屏
11、效API函需要用SetConsoleDisplayMode用來使用SetConsoleDisplayModeSeetConsoleDisplayModeunctionsetstedisplaymodeothespecifiedconsolescreenbufferBOOLSetConsoleDisplayMode(HANDLEhConsoleOutpu,tDWORDdwFla,gserDimen)s;ionsPCOORDlpNewScreenBuParametershConsoleOutputinHandletoaconsolescreenbuffer.dwFlagsinDisplaymode
12、oftheconsole.Thisparametercanbeoneormoreofolloingvalues.ValueMeaningCONSOLE_FULLSCREEN_MODETextisdisplayedinfull-screen1mode.CONSOLE_WINDOWED_MODETextisdisplayedinaconsole2window.lpNewScreenBufferDimensionsPointertoaCOORDstructurethatreceivesthenewdimensionsofthescreenbuffer,incharacters.使用上,比較簡單,這里
13、提供VC和Fortran兩種版本的演示。VC版:#includestdafx.h#includetypedefDWORD(CALLBACK*MYPROC)(HANDLE,DWORD,PCOORD);intmain(intargc,_TCHAR*argv)MYPROCpAddr;HMODULEhModule;HANDLEhCon;BOOLbRes;hCon=GetStdHandle(STD_OUTPUT_HANDLE);/獲得Console窗口句柄hModule=LoadLibrary(TEXT(Kernel32.DLL);/獲得Kernel32的模塊句柄pAddr=(MYPROC)GetPro
14、cAddress(hModule,SetConsoleDisplayMode);/獲得函數(shù)地址bRes=pAddr(hCon,1,NULL);return(0);Fortran版,需要在VisualFortran系列編譯器下使用:UseKernel32!/使用Kernel32函數(shù)庫Interface!/書寫SetConsoleDisplayMode的函數(shù)接口SubroutineSetConsoleDisplayMode(hConsoleOutput,dwFlags,dwNULL)Integer,Value:hConsoleOutputInteger,Value:dwFlagsInteger:d
15、wNULLEndSubroutineSetConsoleDisplayModeEndInterfaceInteger:PAddr,hModule,hCon!/定義函數(shù)地址,Kernel32模塊句柄,Console窗口句柄Pointer(pAddr,SetConsoleDisplayMode)!/將函數(shù)地址和函數(shù)關聯(lián)起來hModule=LoadLibrary(Kernel32.DLL)!/獲得Kernel32的模塊句柄pAddr=GetProcAddress(hModule,SetConsoleDisplayMode)!/獲得函數(shù)地址hCon=GetStdHandle(STD_OUTPUT_HA
16、NDLE)!/獲得Console0000CallSetConsoleDisplayMode(hCon,1,0)!/調(diào)用函數(shù),第一個參數(shù)是Console窗口句柄,第二個參數(shù)為1表示全屏,為0表示窗口模式。第三個參數(shù)沒有用。EndProgram個程序可以方便的修改的窗口模為函數(shù)過程使用。把這個函數(shù)的第二個參數(shù)改成程序設計的幾個基本概念2008/12/1722:11編程,字寫給她的。高手就不關于程序設計的幾個基本概念蠻重要的。然而很多新程序的老手,他們的這些概念都非常的模器語言的區(qū)別和聯(lián)系。很多課本深刻的理們的計算機得我們的語言的(中文,英文等)。而計算的計算機行的命令,都是以0的。不同的處們的執(zhí)行
17、,但基本上已經(jīng)形成業(yè)內(nèi)的一些示的指令和數(shù)據(jù),因此非常的生澀,幾乎不它書寫程序。的,具有一定意義的,文字的以接受的機器語言形式,這就語言與機器語言的對應關系非常直接,非常簡單,這就使得機器語在一種很直接的相互轉換過程。這就是匯編和反匯編。(匯編指從匯編則相反)(實際上,某些匯編語句還是需要轉換的,但絕大多的程個程序的個本的的程的當然,我們的匯編程序并不是死死的的有的定義語句,在匯編后將不再存在。以上的匯編語句,經(jīng)過匯編以后,就的的結果,也就是敲入一個又一個的個變量。匯編程序下的機器語言(后的值寄存器的值。匯編程序的地址,所有的碼的時候的的常的問的4了它的值了我們的403000,403004),是
18、由匯編程序去完成分配的。正因為源代碼中的變量都變成了地址,因此我們在拿到別人的可執(zhí)行文件(如EXE),再經(jīng)過反匯編后,我們無法得到原始的源代碼。我們看到的,是一堆不可直接理解的內(nèi)存地址.從EXE得到原始的源代碼,幾乎是不可能的,因為在匯編(高級語言的編譯)過程中,很多很多信息都已經(jīng)丟失了。上面以一個例子顯示了匯編語言與機器語言,以及與反匯編后看到的“匯編語言”的一些區(qū)別和聯(lián)系。其實它們之間還有更多更多的關聯(lián)。就不再描述了。由于匯編語言的操作非常細致,因此要完成一個簡單的動作,就需要大量的語句。而且書寫起來不夠直觀。因此人們制定了高級語言規(guī)范(比如C,C+,Java,BASIC等)。并設計開發(fā)了
19、高級語言編譯器。(這里的編譯器區(qū)別于匯編語言的匯編程序)編譯器是把高級語言的源代碼文件(比如C語言的*.cpp源代碼文件)轉換成對應平臺的目標代碼(機器語言)的程序。比如以上的匯編代碼,如果寫成高級語言,則可能很簡單的書寫為:rC=rA+rB經(jīng)過高級語言的編譯器編譯之后,得到的目標程序(比如EXE),它的指令類似與上面描述的一長串機器語言指令。這樣的高級語言書寫形式,更符合人們的習慣。也更容易理解和修改。這樣的形式也更容易方便的完成一些列的動作。更簡單直接。也因為這樣的書寫方式更遠離機器語言,因此翻譯這樣的高級語言源代碼也就更復雜,設計高級語言編譯器的難度就更大。同時,因為高級語言的書寫更簡單
20、,因此必然導致同樣的高級語言語句,可以有不同的機器語言實現(xiàn)方法。這些方法,有些更好,有些就比較糟糕。如何選擇更高效的方法實現(xiàn)高級語言功能,這是不同編譯器選擇優(yōu)化的不同考慮。也就是說,同一段高級語言代碼,經(jīng)過不同的編譯器編譯,得到的目標程序是不同的,而且區(qū)別會很大。同時,由于操作系統(tǒng)的出現(xiàn),代替了剛開始應用程序的磁盤管理,文件管理,內(nèi)存管理使得不同操作系統(tǒng),不同平臺下,需要不同的目標程序。而人們書寫代碼之后,往往希望能夠應用到不同的操作系統(tǒng)或平臺。因此,高級語言可以一定程度上滿足這種需求。同樣的高級語言代碼,經(jīng)過Windows下Win32編譯器編譯,可以得到程序的Win32版本;經(jīng)過.NET平臺
21、編譯器編譯,可以得到程序的.NET版本;在Linux下,用Linux下的編譯器編譯,又可以得到程序的Linux版本。當然了,這樣的跨平臺,只是針對源代碼而言的。如果要向另一個平臺轉移,一般是需要重新編譯,重新獲得目標程序的。而不是一個高級語言書寫的程序,獲得的目標程序就可以在不同平臺上運行。實際上,很多程序,在書寫的初期,就使用了某些平臺的特性(比如涉及注冊表的內(nèi)容,就只能在Windows下使用)。這樣,就決定了他們只能在某個平臺上使用,在其他平臺上編譯,會出現(xiàn)錯誤?;蛘咴创a需要一定的改動。當然,這比完全重寫要容易得多。正因為高級語言與匯編/機器語言的對應關系不再是單一的一一對應關系,因此,
22、人們制定了很多高級語言規(guī)范(比如C,C+,Java,BASIC,Java等),以滿足不同的需要。而同一種高級語言規(guī)范,全世界各個開發(fā)商,又開發(fā)了不同的編譯器(比如C+的編譯器就有微軟的VisualC+,Borland的C+Builder等)。這些編譯器哪個更好,也不是三言兩語可以說清楚的。它們都各有各的長處,各有各的應用領域,而每個程序員也都有自己的習慣,需求。相比匯編語言匯編成機器語言的一一對應來說,編譯的過程就有了很高的靈活度。因此各個編譯器開發(fā)商,都在極力的宣言自己能夠快速的生成小巧,精煉的匯編代碼,提高目標程序的執(zhí)行效率。對高級語言代碼的最優(yōu)編譯,是編譯器不斷追求的目標。作為一個商業(yè)的編譯器產(chǎn)品來說,除了編譯器,更多的,還有為書寫代碼方便而提供的代碼編輯器,編輯環(huán)境(IDE),調(diào)試器,各種庫文件,頭文件,說明書,幫助文檔,演示代碼等。這就使得本來應該很小的編譯器(最多幾個MB),在成為一個編譯器產(chǎn)品后,變得十分龐大(多達幾百MB,甚至幾個GB)。對于大多數(shù)編譯器來說,都有自己面向的高級語言規(guī)范和目標平臺。比如VisualC+面向C+語言的源代碼,目標平臺是Windows
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年互聯(lián)網(wǎng)醫(yī)療解決方案技術合作協(xié)議
- 2025年雙方協(xié)商勞務派遣協(xié)議
- 2025年PPP項目合作財務管理協(xié)議
- 主材供應及合作框架合同 2024年版一
- 2025版區(qū)塊鏈技術應用合伙人合作協(xié)議3篇
- 2025年度智能建筑安裝工程承包技師合同4篇
- 二零二五年度酒吧食品安全管理與承包合同
- 2025年度城市公交車定點維修與應急保障合同
- 二零二五年度汽車維修免責聲明適用于車主自帶配件
- 2025年度地鐵隧道鋼筋工勞務施工安全質量保障合同
- 建筑結構課程設計成果
- 班級建設方案中等職業(yè)學校班主任能力大賽
- 纖維增強復合材料 單向增強材料Ⅰ型-Ⅱ 型混合層間斷裂韌性的測定 編制說明
- 習近平法治思想概論教學課件緒論
- 寵物會展策劃設計方案
- 孤殘兒童護理員(四級)試題
- 梁湘潤《子平基礎概要》簡體版
- 醫(yī)院急診醫(yī)學小講課課件:急診呼吸衰竭的處理
- 腸梗阻導管在臨床中的使用及護理課件
- 小學英語單詞匯總大全打印
- 衛(wèi)生健康系統(tǒng)安全生產(chǎn)隱患全面排查
評論
0/150
提交評論