1. 這個怎麼用
下載地址
1.
2.
一、常規問題
問:Unicode和Ansi版本是怎麼回事,用一個更好?
Unicode是統一字元編碼方式,Unicode版本的程序只能運行在NT/2000/XP/2003等新的Windows上,可以解決不同語言的顯示問題,並且由於Unicode在這些系統上有更好的性能,所以當處理大量列表的時候也有很大的幫助。
千千靜聽內部處理字元串時(例如處理標簽或列表時),大量使用系統默認的16位Unicode(即使是Ansi版本也一樣,只是顯示的時候才轉換成Ansi),可以最大限度的提高處理的性能。
問:我是繁體XP(2000)的用戶,可以使用千千靜聽嗎?
可以,千千靜聽已經支持unicode,可以在非簡體中文的Windows 2000/XP下使用,千千靜聽的界面不會出現亂碼,但某些只包含ID3v1標簽的MP3文件可能是顯示亂碼,可以嘗試用「文件信息」里的內碼轉換功能來找到正確的內碼。千千靜聽還提供了繁體和簡體之間的標簽和歌詞轉換。
問:安裝新版本的時候,需要先刪除以前的版本嗎?
不用,直接覆蓋安裝就行了,千千靜聽可以兼容以前的參數設置,但某些功能可能因為升級而發生變化,絕大多數設置將繼續有效。
問:為什麼我的電腦上沒有淡入淡出窗口的效果?
淡入淡出窗口以及半透明窗口效果都需要Windows2000或以上的操作系統才能支持。
問:我的窗口不小心拖動屏幕外面了,怎麼辦?
在Windows的系統欄(屏幕右下角的系統時間那裡)右鍵點擊主菜單,選「查看窗口」下面的「重新排列」,這個對普通模式和迷你模式都有效。
問:我想把千千支持的文件格式默認用千千來打開,怎麼樣最方便?
千千選項的最後一頁「系統關聯」,可以在你想要關聯的某個格式,或某一類格式上打上勾,並且為這種或這一類格式指定一個文件類型圖標,考慮到不同用戶有不同的喜好,千千隻提供圖標自定義的功能,而不提供任何很多默認的圖標。
問:為什麼千千靜聽的皮膚這么少?
作者本人不擅長美工,又找不到專業人士幫助千千(因為千千免費)。其實千千靜聽的皮膚格式是比較簡單的,是基於XML格式的用ZIP壓縮一下而已,有興趣的網友可以自己把皮膚文件改為.zip後綴後解開來看看,具體請看主頁上皮膚 這一頁。
問:為什麼千千靜聽不支持Winamp的皮膚呢?
由於播放器的功能不相同,皮膚的設計和實現也不相同,很多千千靜聽需要的皮膚的元素Winamp的皮膚里都沒有,例如千千靜聽需要歌詞秀窗口,但Winamp本身就沒有這個窗口的皮膚。論壇上有不少網友從winamp改造過來的皮膚,有興趣不妨去看一下。
--------------------------------------------------------------------------------
二、播放
問:為什麼在Win98下不支持播放CD?
Win98沒有自帶數字CD讀取所需的驅動,可以到主頁上去下載這個通用的驅動程序,地址是:
問:為什麼我正在播放CD的時候,就不能轉壓CD為其它格式了?
因為Windows下以數字方式訪問CD是獨占的,所以同時只能由一個任何來訪問CD。如果你想轉壓,請先停止播放。
問:千千有沒有能自動在線查詢到CD信息的功能?
4.3以後的版本,提供了freedb的在線查詢CD信息的功能,但非正版的CD很可能找不到 。
問:為什麼我用Windows Media Player製作的WMA文件無法播放?
Window Media Player在製作WMA文件時默認啟用了"數字版權保護"機制,而要支持這種文件,必須得到微軟的官方支持,考慮到手續比較麻煩所以目前還未實現對它的支持。所以在製作WMA文件的時候請盡量不要使用數字版權保護。
問:回放增益(自動音量)是怎麼回事,應該如何使用?
"回放增益信息"是通過對音頻文件的掃描分析檢測到的一個最佳的增益值, 在以後的播放中如果使用這個增益值就可以把音頻文件的音量調整到最佳的水平,從而減少甚至避免不同音頻文件之間的音量差異.
可以通過手動掃描或自動掃描來得到這個信息,手動掃描就是在播放列表上右鍵某些文件,通過「掃描增益信息」來得到,或者選中千千選項的「播放」頁中的「自動掃描」,這樣在播放的同時,就會自動掃描沒有這個信息的文件(如果已存在就不會再掃描),但要注意的是,如果播放被中斷或用戶拖動了播放進度,掃描就會停止,只有完整的播放一遍之後才能得出這個信息。
問:為什麼我啟用了回放增益以後,有些歌的音量不正常?
增益信息是以文件標簽的形式保存在文件中的,可能是增益信息別的軟體破壞了,所以導致音量不正常,這時,你需要手動重新掃描一下。
問:千千支持哪些音頻輸出方式?
千千支持Waveout(波形輸出),DirectSound,Kernel Streaming(內核音頻流),ASIO這四種方式,但在不同的系統和音效卡環境下,並不是每一種都能支持的,特別是ASIO,更需要音效卡本身的支持,一般只有比較高檔的音效卡才能支持。
問:這些音頻輸出方式各有什麼特點?
Waveout是微軟最早提出的音頻流輸出方式,所以它的兼容性也就好,幾乎所有的音效卡都支持;
DirectSound是微軟DirectX的一個組合部分,它的兼容性也很不錯,並且在有多個程序需要播放音頻的時候能提供高可靠的保障,並且使用這種方式可以讓千千靜聽更好的支持聲音的淡入淡出效果;
Kernel Streaming是微軟底層使用的音頻流方式,具體更低的延時性,用於對延時性要求比較高的場和,因為更底層,所以效率更高,而且受別的程序的影響也更小,如果你用它來播放時,把系統音量里的波型「靜音」,就可以實現只聽到播放器的音樂,而不受其它程序的聲音的影響。但Kernel Streaming同樣對音效卡和驅動有一定的要求。
ASIO是Steinberg提出來的比較新的音頻流輸入輸出介面,一般用在對實時性要求很高的專業場合,對音效卡的要求更高。
理論上來說,這四種方式對輸出的音質沒有任何影響,因為這些方式只是把聲音的數字信號傳輸到音效卡的數模轉換器(D/A),而不會對信息有任何的改變。
問:像AxASIO之類的軟體能讓音效卡不支持ASIO的電腦也使用ASIO,有什麼好處嗎?
AxASIO或ASIO Kernel-Streaming Driver之類的軟體,都是在Kernel Streaming的基礎上模擬出來的ASIO,所以效果反而沒有直接用Kernel Streaming好,而且設備不當的話還影響正常的播放。
問:千千使用的MP3解碼器是哪一個?
千千使用的是最新版本的mpg123-0.59s-pre,它是目前已經的開放源代碼中最好的MP3解碼器之一,無論是精度來是速度都是很出色的。千千早期版本使用的是MAD,但在個人PC上,MAD的解碼速度比mpg123要慢70%甚至更多,而絕對精確和mpg123相比還略有差距,所以後來就改用mpg123了。
問:是不是把播放時的緩沖長度設得越高播放越流暢?
一般來說,只要設置1000-2000毫秒的長度就可以了,太長只會增加資源佔用。
問:播放時的輸出比特是越高越好嗎?
不是,目前幾乎所有的音頻源都來自16比特的CD,而且一般的音效卡只支持16比特的輸出,所以基本上選用16比特就可以滿足絕大多數的要求了,千千的「原始比特」就是指音頻本身的比特數,因為碰到有些24比特的WMA,千千就會自動選擇24比特輸出。
要注意的是,很多支持ASIO的音效卡,最佳的輸出比特數是32或24,所以這時選擇相對應的比特數就能提供最佳的性能(因為不需要再做額外的轉換)。
問:采樣頻率轉換一般用在什麼場合?
對於AC』97規范的音效卡(主板自帶的基本上都是這類音效卡),硬體只支持48000Hz這一種采樣頻率,而CD的音頻是44100Hz的,從CD轉換過來的MP3等大多部格式也是44100Hz的,也就是說在這種類型的音效卡上,在數字信號轉成模擬信號之前,還要對采樣頻率做一次轉換,如果驅動程序提供的轉換程序不是很好(據說為了提高性能,都採用比較一般的演算法),就可以嘗試用播放器提供的軟體轉換功能。但用於這類音效卡來說,本身的輸出音質就不是很理想,所以用不用更好的轉換演算法意義並不大,而且由於軟體轉換需要CPU做更多的事情,性能肯定受到影響。
問:高頻抖動又是什麼意思?
一般的音頻編解碼器,都是用高比特來處理16比特的音源的,在最終播放輸出的時候,又得把高比特降低到16比特來輸出(因為一般的音效卡只支持16比特的輸出),所以就會有量化的副作用,就好比把一幅真彩的圖片轉成256色,如果轉換的程序不好,就會有大塊的很難看的色塊出現,於是就產生了一種抖動的技術,就是採用插值演算法,在轉換前用一些隨機的雜訊來處理一下,以減少量化帶來的副作用。
一般來說,如果音源和輸出時的比特數相同,就不需要再用抖動了。並且抖動只對低於16比特的輸出比較好的效果。
--------------------------------------------------------------------------------
三、文件標簽
問:什麼是文件標簽,有什麼用途?
文件標簽就是指一個歌曲文件的標題(歌名)、藝術家(演唱者)等的信息,就好像是一個人的姓名一樣。有了文件標簽,就能准確的知道這首歌的來源,就能通過這些信息准確的本機或網上查找到相應的歌詞文件。
問:如何填寫或編輯文件標簽?
通過千千的「文件信息」對話框,就能編輯標簽信息。有兩種方法可以顯示這個對話框:1。在播放某首歌的時候,在主窗口上右鍵的主菜單里選擇「查看窗口」里的「文件信息」,這時顯示的就是當前正在播放的這首歌的文件信息;2。在播放列表裡選中某首或某些歌曲,在右鍵菜單中選擇「文件信息」,就能顯示選中文件的信息了,如果你選的是多首歌,就能同時編輯多首歌的信息。
問:千千支持哪些類型的標簽?
千千幾乎支持所有已知的通用標簽類型,比如對於MP3文件,就支持ID3v1/ID3v2、APE;對於Ogg文件,就支持Ogg本身的Vorbis標簽;而對於APE、MPC之類的新型文件格式,同樣支持APE標簽,對於iTunes的MP4/M4A格式,千千也同樣支持它的標簽類型;要注意的是,WMA的標簽的寫入需要安裝微軟的media9或更新的版本,但讀取就不需要任何額外的支持了;而對於RM文件,千千目前只支持最基本的幾個標簽欄位。
問:千千嵌入的歌詞是怎麼回事,和標簽有關嗎?
千千嵌入的歌詞就是以標簽的形式保存在歌曲文件里的,欄位名是"Lyrics",對標簽的操作對嵌入的歌詞同樣有效。
問:如何在播放列表的歌曲標題里顯示我想要顯示的標簽欄位?
可以在千千選項里的「播放列表」頁里設置「有標簽時的格式」,只要用「%(英文欄位名)」這樣的字元串就能表示任何你想要顯示的欄位了,當然前提是你得知道這些欄位的英文名稱,你可以通過上面講到的「文件信息」對話框的「高級模式」來看到所有這個文件里已存在的標簽欄位的名字和值。
問:某些文件顯示的是亂碼的標簽,有沒有辦法改正?
可以嘗試使用「文件信息」里的內碼轉換功能來找到正確的內碼。
問:為什麼千千靜聽在列表裡查找文件比較慢?
為了節省資源佔用並且提高文件添加到列表的速度,千千靜聽默認是當播放列表在顯示某個音頻文件時才會讀取信息,而像foobar2000這樣的播放器則是在第一次添加時就讀取了所有文件的信息,所以查找時就不需要再讀取了。 事實上千千靜聽也提供了和foobar2000一樣的文件信息操作方式,請在選項里的「播放列表」頁中將讀取信息改為「添加」時,並且選上「緩存文件信息到播放列表」。
--------------------------------------------------------------------------------
四、歌詞
問:怎麼使用歌詞秀,為什麼我自己從網上下載的歌詞就不能顯示?
歌詞文件有一定的格式,一般以LRC和TXT後綴,每句歌詞前面有[00:00.00]這樣的時間標簽,如果沒有這些標簽的歌詞是無法顯示的,可以用千千靜聽自帶的歌詞編輯器來為每句歌詞加入時間標簽,保存後就可以正常顯示了。建議把歌詞文件以「歌手名 - 歌曲名.lrc」這樣的方式命名,再把存放這些歌詞的目錄加到千千的本地搜索文件夾里,以後就不用再一一關聯了,當然你的歌曲文件應該也有相應的歌手名和歌曲名信息,這樣才能保證播放器找到正確的歌詞文件。
問:為什麼歌詞下載會失敗?
有以下幾種可能的原因:
1.文件信息不正確,以至於在搜索時無法正確匹配;
2.歌曲太新,以至於這些歌詞網站都還沒有收集歌詞;
3.如果你安裝了防火牆,可能網路請求被過濾而無法連接到歌詞伺服器;
4.歌詞伺服器可能出現問題,或者正在維護。
問:為什麼沒有讓用戶自己輸入或選擇歌詞網站的功能?
歌詞下載網站的搜索和下載方式都不相同,如果要實現用播放器來自動處理需要編寫相應的搜索和下載程序,並不是簡單的輸入一個網址就行了。(注:用網路搜索到的歌詞都是純文本的歌詞,無法直接用於歌詞秀)
問:為什麼我下載了正確的歌詞,但下次播放還是顯示錯誤的?
千千載入歌詞的順序是內嵌歌詞->關聯歌詞->本地搜索->在線搜索,很可以內嵌或關聯了錯誤的歌詞,或在本機上有錯誤的歌詞文件,這時你可以按上面的順序來檢查優先順序高的歌詞,如果發現有錯誤,就刪除或修改就行了。具體操作請看歌詞秀的右鍵菜單或選項里的和歌詞相關的參數。
問:我想讓下載後的歌詞自動以歌曲相同的文件名保存,並且直接保存到歌曲所在的目錄,這樣我找起來很方便,怎樣才能做到?
在千千選項的「歌詞搜索」頁里,有相關的參數可以設置。
問:我的標簽信息和文件名都是繁體的,能找到簡體的歌詞嗎?
如果使用的是Unicode版本,並且是2000以上的系統,就可以實現,但在線搜索只有炫網的搜索插件才支持,另外兩個網站的搜索引擎不支持簡繁體的自動識別。
--------------------------------------------------------------------------------
五、其它
問:我想在播放列表裡直接刪除硬碟上的文件,「物理刪除」為什麼是灰色的?
千千提供了物理刪除的功能,但考慮到用戶可能會誤操作,所以默認是禁用的,你可以在千千選項的「播放列表」頁中找到啟用這項功能的選項。
問:我想從播放列表裡直接到文件拖動到其它地方,比如我的U盤或MP3機,可以嗎?
可以,在播放列表是選中要操作的文件,注意用左鍵按住標題(否則就變成選選擇文件了,這和windows的資源管理器操作一樣),拖動文件到你想要到地方,如果想復制,就按再Ctrl鍵,操作和資源管理器完全一致。用這種方法,你甚至可以直接把文件拖到回收站上而刪除你不想要的文件。
問:我想把CD壓縮成MP3、WMA或APE,用千千靜聽可以做到嗎?
可以。通過添加文件或添加目錄來把CD上的所有音軌文件拖到播放列表裡面,因為數字方式抓取音軌是獨占訪問的,所以如果正在播放CD上的文件或是音軌,請先停止播放,然後在播放列表裡選中要轉壓的文件(多選就可以進行批量轉換),點右鍵菜單的「轉換格式」命令就可以轉換了,如果在壓縮格式列表裡沒有找到MP3或WMA,請重新安裝千千靜聽。用同樣的方式可以轉換任何千千靜聽可以播放的文件(例如APE等格式轉換到MP3、WMA)。
問:為什麼其它的播放器對RM的支持比千千靜聽好?
其它播放器用的是Real Player的播放器核心,其實就相當於在使用Real Player在播放,這和直接用Real Player來播放沒多大區別,而且這個核心佔用內存實在是比較厲害,所以作者不想採用這種方式。其實Real公司對RMF文件的格式只公開了部分內容,有些細節還沒有完全公開,特別是和編碼格式有關的部分,在現有的條件下,千千靜聽只能做到這樣了,希望將來能得到更多的技術支持。
問:如果我的電腦上沒有安裝Windows Media Player 9或更新的版本,還能播放WMA嗎?
當然可以,只要在安裝時選中支持WMA就行了,千千靜聽支持WMA只用到了微軟的WMA解碼器組件,就是安裝目錄下的wmadmod.dll文件,只有400K左右J,而且還支持WMA文件信息的讀取。
問:我要把一台電腦上的千千靜聽拷到另一台電腦上使用,所有的設置都還有用嗎?
千千靜聽的設置都保存在安裝後的目錄下的TTPlayer.xml文件下,只要把這個文件和程序一起復制別的電腦上就可以了,根本就不需要重新安裝,當然有些目錄可能會因為不同的電腦而不一樣,需要注意一下(比如歌詞下載的保存目錄會因為電腦的不同而無效)。
問:我對INI文件比較熟悉,為什麼不用INI文件來保存這些設置?
INI是比較「過時」的配置文件,讀取和分析都比較慢,擴展性也比較差,而XML是最好的用於保存各種信息的格式,而且現在對它的支持也越來越廣泛,所以用XML是更好的選擇。
問:為什麼我在千千靜聽里使用DFX看不到DFX的窗口?
如果你的電腦上安裝了Winamp,並且DFX也是安裝在Winamp上,那隻要把Winamp的Plugins目錄設置為千千的Winamp音效目錄應該就不會有任何問題了(默認情況下千千會檢測到Winamp的插件目錄並且自動設置),如果你沒有安裝Winamp,而把DFX安裝到千千的目錄上,你就應該手動把DFX安裝後的目錄下的Plugins目錄設置為千千的Winamp音效插件目錄。
問:為什麼不支持視頻?
作者設計千千靜聽的原則就是用來播放音頻,至於要看到視頻圖像,有更多更好的選擇,相信大家心中已經都有自己最喜愛的視頻播放器了。
問:千千靜聽支持哪些網路協議的點播?
目前千千靜聽支持HTTP和MMS方式的在線點播,其中MMS協議需要Media Player 7或更高的版本支持。暫時不支持網上比較流行的RTSP協議。
問:千千靜聽是用什麼語言寫的,為什麼支持這么多的格式還這么小巧?
千千靜聽是用VC6編寫的,如果你還知道WTL,那麼作者可以告訴你,界面是用WTL來編寫的,相對於MFC的庸腫,WTL更適合編寫快速、精簡並且佔用資源少的程序。當然很多音頻編碼庫是用c語言來寫的,這樣更加高效而且小巧。
問:隨著用的人越來越多,作者是否會考慮收費或者注冊?
作者不會因為任何理由違背承諾來向用戶收費!
問:為什麼不在網站上做些宣傳,好讓更多的人知道?
我一直改進千千的理由不是為了錢,所以用的人多了對我本人來說也不見得就是好事,一個人做軟體畢竟很辛苦,用的人太多引來的問題和麻煩也就更多。
問:我經常在某些論壇上看到推薦千千靜聽的貼子,有人說這是作者請的「槍手」在推薦?
這是最可笑的問題,但確實有不少網友來問!
我的回答是「絕對不是」,一方面上面也說過了,我本人對宣傳不感興趣,另一方面,我也請不起所謂的「槍手」。問問你自己或你身邊的朋友,你們是如何知道千千靜聽的,是在媒體上看到的廣告?是在論壇上看到大肆的推薦?還是朋友直接推薦給你的?
作者並不反對網友到不同的論壇上推薦千千靜聽,如果你認為千千是一個你喜歡的並且值得推薦的軟體,那麼有什麼理由不讓你去推薦給更多的人用呢?!
問:為什麼取名叫「千千」,好像不太響亮哦?
作者很喜歡陳慧嫻的歌,相信大家都知道為什麼會用「千千」這個詞了吧。其實當時之所以會自己寫一個播放器也是因為覺得Winamp很多地方不太好用,總覺得要是有一個自己的播放器來聽自己喜歡的歌那該多好啊,所以就有了今天的千千靜聽,希望大家會喜歡。
2. 千千靜聽
你可先用Word或文本文檔兩格式編好歌詞
再打開千千靜聽在歌詞綉屏幕上右擊關聯上你所編寫的歌詞
下面就是在歌詞綉屏幕上出現一個編輯形式,其中有個"+"標志,是插入時間標簽的工具,
然後就是播放此音樂時插入每句的時間標簽(時間標簽就是播放音樂時歌詞綉屏幕里歌詞出現的時間),但要聽完這首歌才能完全編輯
當然這只是我的一個方法,可能還有更簡便的方法.
3. c語言,用vc6.0++寫一個程序,為什麼編譯和組建產生的文件名不同
VisualC++6.0簡稱VC或者VC6.0,是微軟1998年推出的一款C/C++ IDE,界面友好,調試功能強大。VC6.0是一款革命性的產品,非常經典,至今仍然有很多企業和個人在使用,很多高校也將VC6.0作為C語言的教學基礎,作為上機實驗的工具。本教程中的代碼,也都是在VC6.0下運行通過。
VC6.0 確實有點老了,如果不是學校要求或者項目需要,建議使用 Visual Studio 代替,這里之所以講解 VC6.0,是為了照顧在校生或者有特殊需求的讀者。
安裝VC6.0
微軟原版的 VC6.0 已經不容易找到,網上提供的都是經過第三方修改的版本,刪除了一些使用不到的功能,增強了兼容性。這里我們使用 VC6.0 完整綠色版,它能夠支持一般的 C/C++ 應用程序開發以及計算機二級考試。
下載地址:VC 6.0中文版下載
在VC6.0下運行C語言程序
C-Free 支持單個源文件的編譯和鏈接,但是在VC6.0下,必須先創建工程(Project),然後再添加源文件。一個真正的軟體,往往需要多個源文件和多種資源,例如圖片、視頻、控制項等,通常是把它們放到一個文件夾下,進行有效的管理。你可以把工程理解為這樣的一個文件夾,IDE通過工程來管理這些文件。工程有不同的類型,例如開發「黑窗口」的控制台程序,需要創建Win32 Console Application工程;開發帶界面的GUI程序,需要創建Win32 Application工程。
1) 新建Win32 Console Application工程
打開VC6.0,在菜單欄中選擇「文件 -> 新建」,或者 Ctrl+N,彈出下面的對話框:
注意:編譯生成的 .exe 文件在工程目錄下的Debug文件夾內。以上面的工程為例,路徑為E:cDemo,打開看到有一個Debug文件夾,進入可以看到 cDemo.exe。
在Debug目錄中還會看到一個名為 hello.obj 的文件。.obj是VC/VS生成的目標文件,類似於C-Free下的.o文件。
工程文件說明
進入工程目錄 E:cDemo,除了 hello.c,還會看到很多其他文件,它們是VC6.0創建的,用來支持當前工程,不屬於C語言的范圍,你可以忽略它們。
如果讀者感興趣,我們也提供了簡單的說明:
1) .dsp文件:DeveloperStudio Project,工程文件(文本格式),用來保存當前工程的信息,例如編譯參數、包含的源文件等,不建議手動編輯。當需要打開一個工程時,打開該文件即可。
2).dsw文件:DeveloperStudio Workspace,工作區文件,和DSP類似。
3) .opt文件:IDE的Option文件,保存了與當前工程有關的開發環境的配置,例如工具條位置、打開的文件、游標位置等。
4) .plg文件:日誌文件(HTML文件),保存了程序的編譯信息,例如錯誤和警告等。
一個工程可以包含多個源文件和資源文件(圖片、視頻等),但只能生成一個二進制文件,例如可執行程序.exe、動態鏈接庫.dll、靜態鏈接庫.lib等。工程類型決定了不同的配置信息,也決定了生成不同的二進制文件。
一個工作區可以包含多個工程,能夠批量生成多個二進制文件。
我們安裝的較大的程序,安裝目錄中一般包含多個 EXE 和 DLL。對於這樣的程序,可以先創建一個工作區,再創建多個工程,這樣就能一次性生成所需的多個二進制文件。
4. 如何製作軟體批量安裝包
軟體瘋狂裝(批量安裝常用軟體) 簡體中文綠色版
http://www.jz5u.com/soft/search.asp?act=topic&keyword=%C8%ED%BC%FE%B7%E8%BF%F1%D7%B0
5. Linux適合編程嗎
如果只是從人工智慧的角度來說,linux的優勢並不大。我能想到的幾個可能的優勢有:
1) 包管理。比如你要用c++的一個庫opencv,linux下面直接apt-get install libopencv,然後在makefile裡面加上-I `pkg-config opencv`就好了。如果是(老版)visual studio裡面你要先打開瀏覽器,搜索opencv的網站,下載,解壓,記住路徑,回到vs右擊工程,點屬性,vc++ directories,點編輯,點添加,把路徑粘貼進去。蛋都要碎了。
但是!這個優勢只在vs2010發布以前有效。新版的vs你只需要右擊工程,點nu-get package manager,然後搜索opencv點確定就沒了。
2) 各種自動化。比如你寫了個訓練svm的程序,有1000個svm要訓練。在linux下面可以把這個訓練的程序編譯成可執行文件trainsvm,介面是類似./trainsvm input1.txt svm1.dat。然後在命令行下面seq 1 1000 | xargs -I{} -n 1 -P 12 bash -c './trainsvm input{}.txt svm{}.dat'一下就開了12個進程一塊訓練,某個進程訓練完了以後立馬會有下一個補上有木有。(就是管程的概念)我在windows下面用c#實現這樣的功能要將近100行,還沒有xargs靈活。批量處理超級方便啊。用parallel還可以在多台機器上分布式訓練。
但是!你在windows上裝個cygwin這些也全都有。。
3) 有時候數據量太大了需要去amazon租ec2並行計算。windows機器比linux貴啊摔。還有配置相對慢。linux弄個小腳本分分鍾就把環境都配好了(夾個私貨,比如這是我的ec2 linux配直腳本 https://github.com/grapeot/debianinit )。價格這個無解。。配置方面windows的非官方包管理器chocolatey還比較弱,如果有誰知道如何快速配置windows環境歡迎指教。
所以基本結論是,如果只是想日人工智慧,老老實實拱演算法先,哪個熟用哪個。如果蛋痛想折騰,linux可玩性和逼格都要更勝一籌。而且用熟了以後完成任務(get things done)的能力會加強不少。
6. 我想學習C語言 可我的電腦知識淺薄 我該買什麼書(自學) 該用什麼C語言什麼編程軟體
機高手的成長歷程,我看之後感觸頗深,希望對你也有幫助.
=========================================
這些日子我一直在寫一個實時操作系統內核,已有小成了,等寫完我會全部公開,希望能夠為國內IT的發展盡自己一份微薄的力量。最近看到很多學生朋友和我當年一樣沒有方向,所以把我的經歷寫出來與大家共勉,希望能給剛入行的朋友們一點點幫助。
一轉眼我在IT行業學習工作已經七年多了,這期間我做過網頁,寫過MIS、 資料庫,應用程序,做過通信 >軟體、硬體驅動、 協議棧,到現在做操作系統內核和IC相關開發,這中間走了很多彎路,也吃了不少苦。
我上的是一個三流的高校,就連同一個城市的人多數都不知道。因為學校不好也就沒有指望能靠學校名氣找一個好工作。所有的希望都寄託在自己的努力上了,大一開學前的假期我就開始了學習,記得我買的第一本書是《 計算機基礎DOS3.0》,大家別嚇著了,其實當時已經普及了DOS6.22了,只是我在書店裡看到了DOS4.0,5.0,6.0的書,以為像英語那樣是第四、五、六冊,記得當時到處找DOS1.0,現在想想也幸好我沒有找到:)開學前我學完了PASCAL,那時既沒有 計算機也沒有人可以請教,我連程序是什麼的概念都沒有,只好死記硬背 代碼,然後拿紙寫,我一直到大三才有了一台486,在這之前用紙寫了多少程序我也記不清楚了,只知道最長的一個我拿A4大小的草稿紙寫了30多頁,我的C語言、C++、VC都是在這樣的條件下 入門的。所以說條件是可以克服的,希望我的經歷多少給條件艱苦的同學們一點信心。第一次上機是在我姐夫的機房,我的心情激動的無與倫比,但是一上機我立刻傻了眼,他們用的是英文版的in3.1,我的那點DOS 知識都見了鬼,上機提心吊膽的一陣瞎摸,一不小心把Word弄成了全屏,怎麼都還不了原,當時真是心急如焚,我以為機器被我弄壞了。第一個C語言程序,就是那個經典的HelloWorld,我調了幾個星期,上機機會非常少,也沒有書告訴我開發環境(TC2.0)需要設置,而且開始我都不知道有編譯器,我甚至自作聰明把寫好的程序擴展名從.c改成.exe,結果可想而知。大一學完了C、X86的匯編、數據結構、C++。由於精力都花在自學上了,大一下四門課掛了彩,三類學校就是這點好,掛上一二十門也照樣畢業。不過扯遠點說,我那麼刻苦都及不了格,可見我們國家的 計算機教育有多死板。
大二准備學VC和BC,當時難以取捨,後來選了VC,不為別的,只為書店裡兩本書,VC那本便宜6塊錢。我的努力在班上無人能及,學的日夜不分,大三有了 計算機後更是如此,很多次父親半夜教訓我說我不要命了,我一直覺得自己基礎差,記憶又不行,條件也不好,所以覺得只有多花點時間才能趕上別人。居然後來有許多朋友說我有學 計算機的天賦,讓我哭笑不得。我用的是486,16M內存,1G硬碟,當時同學們的配置都是P166MMX,我安裝一個indowsNT4.0需要一個通宵,編譯一個BC5.0向導生成的程序需要近兩個小時,我的顯示器是個二手的,輻射非常大,開機屏幕冒火花,看起來很酷的:),有一次程序寫的太久,覺得怎麼白色的編輯器背景變成了紫色,以為顯示器壞了,後來才發現眼睛不行了,不過說來也奇怪,到今天我的視力還能保持1.5,真是個奇跡。但是就是那台破機器陪伴了我兩年,讓我學會了VC、Delphi、SQLServer等。後來那台機器給我阿姨打字用,據她說一天她正打的開心,一股青煙夾著火苗從顯示器鑽出來,之後它才壽終正寢。
大三假期找了個機會在一個 計算機研究所實習,與其說實習不如說是做義工,工作了兩個月一分錢沒有拿。但是這兩個月對我的發展幫助很大,讓我早一步了解了社會,剛去的時候我當然是一竅不通,在那裡我熟悉了網路,學會了Delphi和Oracle。由於工作很認真,得到了比較好的評價,在一位長者的引薦下,我開始和他們一起做項目,這使我在大三大四就有了自己的收入,大四又找了兩家MIS公司兼職,雖然錢不多,但是在學生期間有1000多的收入我已經非常滿足了,我終於用自己賺的錢把 計算機換了。大四下開始找工作,這時我的工作經驗已經比較多(當然現在想想非常幼稚),開始聽父母的想去那個研究所,實習過那個部門也希望我能去,但是不知道為什麼最後不了了之,這種單位就是比較官僚,我一氣之下就到了我兼職的一個公司做MIS的TeamLeader。在大三到畢業一年的時間,做過了各種MIS,從煤氣、煙廠、公安、鐵路、飲食到高校,什麼有錢做什麼,工作也很辛苦,經常加班和熬通宵,從跟客戶談需求到設計、編碼、測試、交付都要上。那時覺得很有成就感,覺得自己還不錯,現在想想真是很膚淺。
剛走上工作崗位的學生很容易被誤導,各種開發 工具讓人眼花繚亂,同時也覺得很受公司器重,但這樣工作永遠是一個低層次的開發者。不要跟我說什麼系統分析有多麼多麼重要,多麼多麼難。你以為自己跟用戶談需求做設計就是系統分析和設計了嗎,國內又有幾個公司能夠做的很到位很規范?我是ISO9000內審員,也在Rational公司受過多次培訓,拿了4個證書,還有一個公司讓我去做CMM。這些我聽過很多,但是很多事情到國內就變了性質,一個公司不是通過了ISO9000或者CMM就能規范了,我現在在一家有幾十年歷史的外企工作,裡面的管理不是一般國內企業能及的。作為一個畢業不久以前沒有步入過社會的學生,幾乎不可能在很短的時間掌握系統分析和設計,面向對象、UML只是一個 工具,關鍵是人本身的思想,不是說你熟悉了C++、Rose就能夠做出好的設計,相反如果你具備了很高的素質,你可以用C寫出比別人用C++更加模塊化的程序。
話說遠一些,國內 >軟體開發行業有一個怪圈,很多人覺得VC>Delphi>VB,真是很搞笑。這幾個 >軟體我都做過開發,說白了他們都是 工具,應該根據應用的需要選擇採用哪個,而不是覺得哪個上層次。如果你因為用某個開發 工具很有面子而選擇的話,只能說明你很淺薄。如果說層次,那麼這些 工具都不上層次,因為它們用來用去都是一些系統的API,微軟的朋友不會因為你記住他們多少個API或者多少個類就會覺得你很了不起,你永遠只是他們的客戶,他們看重的是你口袋裡的銀子。我也做過系統內核,我也封裝過很多API,同樣我也不會看重那些使用這些API做二次開發的客戶,除非他能夠作出自己獨到的設計。
至於有人認為C++>C那更是讓人笑掉大牙,不妨你去打聽一下,現在有幾個操作系統內核是用C++寫的,又有幾個實時系統用的是C++,當然我也不是說C++不好,但是目前的內核和實時系統中C++還無法與C匹敵,至於說C++適合做應用系統的開發那是另外一回事。所以我的觀點是不在於你用什麼 工具和語言,而在於你干什麼工作。你的設計體現了你的 技術層次。
這樣幹了一年我覺得非常苦悶,做的大多數都是熟練工種的活,個人 技術上沒有太多的提高也看不到方向。所以決定離開這個城市去上海,尋求更好的發展,並且打算放棄我以前的MIS轉到通信行業。
寫到這里不能不提到我女朋友,我們是在來上海前半年認識的,她大四在我公司實習,公司派她給我寫文檔,我們的感情發展的很快。她告訴我很多事情,她家原本是改革開放的第一批暴發戶,她母親愛打牌,輸掉了幾百萬,還欠了很多債,她有男朋友,但是她對他沒有感情,只因為他給了她母親兩萬多塊錢,後來還強迫她寫了四萬塊的借條,她男朋友背叛過她並且不止一次打她,現在逼她結婚不然就要她還錢。這人居然還是一個高校的老師!她母親把父親給她的學費花了,因為拖欠學費她沒有辦法拿到畢業證。她母親現在有病需要錢,我拿出了自己的一點積蓄並且跟朋友們接了一些,替她交了學費並給她母親看病(後來才知道看病的錢又不知所終,就連她母親是不是有病我都不知道,但她也是沒有辦法)。這個時候我家知道了一些事情,堅決反對我和她在一起,她原來的男朋友也極力破壞。無奈之下我們決定早一定離開這個傷心的城市,並且瞞著我們家。由於時間倉促,我只准備了4000塊錢,她僅有的幾百塊錢也被她母親要去了,我買了三張票,一張是中午的,兩張是晚上的,中午我的家人把我送上船,他們一離開我就下了船,我和她乘坐晚上的船離開了這個我和她生活了很多年的城市,帶走的只是一身債務。沒有來過上海的我們兩個性倔強,都不願意去麻煩同學和朋友。來到上海是傍晚6點半,我們都不知道該去哪裡,我們找了一個20塊錢的旅館,這個房間連窗戶都沒有,7月份的天氣酷熱難耐,房間里非常悶熱。第二天我們開始租房子,因為身上的錢不多,我們基本都是步行,花了一個星期時間,不知道在浦東轉了多少圈後找到了一個400塊的房子,但是我們都不了解上海是付三壓一,還要付半個月的中介費,買了一些鍋碗瓢盆後,我們身上只有800塊錢了,工作都還沒有著落,這800塊錢要支持到我們拿到第一個月工資,為了省錢我們自己做飯,每天買菜只花兩塊錢,她非常喜歡吃(也可能她在大學經常挨餓的願意),看到她現在這樣省吃儉用我真的很不忍心。她以前的男朋友也沒有放過她,經常打電話來騷擾,並且來上海看她,還說了不少恐嚇她的話,她過於善良,說他以前畢竟幫助過她,叫我不要與他一般見識。以後的每天在家就是苦等面試通知,原本我想迅速找一家MIS公司解決眼前的困難,但是她堅持讓我不要放棄自己的理想,終於功夫不負有心人,我找到了一家通信公司,4000塊的工資雖然趕不上MIS公司給我開出的價位,但也夠在上海生存。她也找到了工作,第一天上班她哭了,這是她來上海第一次流淚,我心裡很難受也很感動。
由於是全新的行業,我把自己降到了零點,我學的VC、Delphi、 資料庫派不上用場,擺在我面前的是嵌入式、協議、信令一些我從未接觸過的 知識。我知道我沒有退路,於是拚命的學習,我把自己當做一個應屆畢業生一樣,一分努力一分收獲,半年過去我終於熟悉了工作,並且得到了公司的表彰,薪水也加了一級。後面的日子裡我們省吃儉用,把欠朋友的1萬多塊錢還了,日子終於上了正軌。這時女朋友告訴我她想考研究生,我也很支持,於是她辭職在家備考。
另外,在這里我要感謝我的ProjectManager,他原來是一個大通信公司的產品經理,對人非常和善,我從他那裡學到了很多 知識,而且他也給了我許許多多無私的幫助。在工作上他給我充分的空間和信任。記得公司安排我維護一個接入伺服器 >軟體,由於 代碼量不算太小(5萬行),資料和文檔都不齊全,我維護起來非常吃力,所以想重新把它做一遍,公司領導不太支持,可能覺得工作量太大,但是他極力支持我,私下裡他讓我放手去做,我的維護工作他擠時間做。在他的支持下,我花了半年時間完成了接入伺服器的 >軟體,並且實現了一個相對完整的 TCP/IP 協議棧。在這里我學會了嵌入式系統設計、驅動開發、 TCP/IP和很多通信的 知識,我花了一年時間終於使自己從MIS開發轉到了通信行業,並且站穩了腳跟。我的開發大量是對硬體的直接操作,不再受微軟的操作系統,VC、Delhpi這些開發 工具的約束,我終於看到了另外一片天空。
我做事情喜歡追根問底,隨著開發的深入, >軟體開發與硬體聯系越來越緊密,硬體 知識的匱乏又對我的發展產生了障礙,而且晶元 技術基本上掌握在國外公司的手裡,這對做系統級設計是一個非常大的制約,一個新產品出來,第一道利潤(也往往是最豐厚的利潤)常常都被IC公司如Intel、Motorola賺去了,國內的廠商只能喝點湯。所以我決心解決自己的硬體 技術障礙,並打算離開通信行業,進入IC設計相關領域。
當然我明白如果我對硬體了解的非常少,沒有哪家IC公司會仁慈到招我這樣一個一竅不通的人來培訓。所以我必須努力打好基礎,學一些相關 知識為以後做准備。就像我開始從MIS轉到通信一樣,我看過大量通信方面的書,並且給一個ISP做過RADIUS計費分揀台,在這樣的背景下這家通信公司才給了我這個機會。我在的通信公司是做系統設計的,有不少PCBLayout硬體人員,平常我就注意向他們學習,由於我做的是 >軟體,在公司看硬體資料不好意思,所以開始只好在家看,剛來上海工作我連續一年都在加班,後來不加了,因為我要擠出時間學習,通常我12點左右睡,第二天5點半起,我上班比較早,地鐵上如果人不多我也用來看書。學習當然不會是一帆風順的,有些實在不懂的問題就積累起來問硬體人員,他們的幫助使我學習進度快了很多,因為在沒有人點撥的情況下自學,我的一半時間是花在解決疑難問題上,但這種問題經常是別人的一句話就可以讓我豁然開朗,我非常慶幸我有這樣的學習環境。在後面的一年裡,我學會了看硬體原理圖,學會了簡單的硬體設計(模擬電路方面還有不小的差距),事情就是這樣的,當你安安份份做 >軟體,別人永遠認為你是 >軟體開發人員,在你開始學習硬體時別人未必會認同,有位中興通訊的朋友還對我說過,一個人不可能把所有東西都學完。我也明白這一點,但我希望自己做的更好。但當你熟悉硬體後大家又會覺得你好像原本就是軟硬體都懂的,同事們也都習以為常了。這個時候我可以把硬體資料堂堂正正的拿到公司看,沒有人再大驚小怪了。讓我比較自豪的是我通過自己的努力做了一個IAD(軟交換的終端設備)系統方案,包含軟硬體的選型、設計等內容,這個方案得到了公司和同事們的認同,讓我感到非常欣慰。
技術是相輔相成的,當我的硬體有了一定的進步後,我的 >軟體設計也有了很大的提高,我可以從更深層次理解問題,我做的接入伺服器CPU是MotorolaPowerPC860,熟悉的朋友都知道860QMC與 >軟體的批量數據傳輸通常採用BD表的方式,硬體人員做驅動的時候習慣採用固定BD表,每接收或發送數據都將數據從BD表拷貝到用戶Buffer,或從用戶Buffer拷
貝到BD表,由於理解的比較深入,我自己重新實現了這個過程,採用動態BD表的方式,驅動從一個網口接收數據,提交給我的 >軟體進行三層交換,直至從另外的介面發送出去,沒有進行一次拷貝。這樣的設計大大提高了性能,使系統的指標接近理論值。軟硬體的結合使我的設計水平上了一個台階。我現在寫的這個操作系統,編譯後我把程序反編譯成匯編,找出其中不優化的 代碼,然後在C程序中進行調整。舉個例子,很多CPU沒有專門的乘法指令,這個大家應該都知道,在這種CPU上進行一個乘法操作常常會花費大量的指令周期,有的朋友會說這個我知道,我會盡量避免採用×號,但是事情往往不是那麼簡單,你知道C語言中數組的下標操作是怎麼實現的嗎?仔細看看反匯編的 代碼你就會明白,同樣是通過下標的定位操作,C編譯器會有時候會產生位移指令,但有時候會用乘法實現,兩者效率往往是天壤之別,所以明白這些問題你才能將系統性能提升到極致。這些問題就不多說了,有興趣的話以後可以共同探討。
話說遠一點,我由衷的希望在 >軟體上做的比較深入的朋友們有機會學學硬體以及其它相關 知識,尤其是做底層開發和嵌入式設計的。這對 >軟體 技術的提高有非常大的幫助,否則很多事情你只知道該這樣但不會明白為什麼該這樣。我這個觀點在我現在的IC公司ProjectManager那裡也得到了驗證。他告訴我們公司現在的802.11晶元產品的 >軟體經理原本是做該晶元硬體設計的,某某某原本是做 >軟體的,現在在做IC,類似的例子還有很多,只是在國內這樣的風氣不是非常流行。
我有一些心得體會與大家分享,只有當我干好本職工作後,我才會學習與工作關系不大的 技術,這樣公司的上司才不至於反感,在 入門階段的問題我通常不去問那些資深人士,而是問一些資歷比較淺的朋友,比如剛畢業不久的學生,因為他們往往會跟你詳細的講解,而資深人士通常覺得你的問題太簡單,所以回答的也很簡單,我又不好意思多問。等 技術上了一定的層次後我才會問他們,他們也能給你比較深入的回答。另外,有些朋友說我機會比較好,他們也希望能從事新的工作可惜沒有機會,我聽了只有苦笑,我的機會了解的人都應該知道,我沒有出生在什麼IT世家:)也沒有誰一路提拔我,所有的路都是自己走出來的,我母親去世比較早,我的後母(我叫她阿姨)看著我努力過來的,一次她看我大年30還在寫程序,她說像我這樣努力木頭都能學出來。
我的最終目的是IC而不是PCB,所以我下一步的准備開始學習IC設計的 知識。公司的同事沒有懂IC設計的,後面的路又要靠自己了,我買了不少相關的書,在網上也查了很多的資料,我花了大量的時間去學習VHDL,並且用 >軟體進行了一些簡單的設計和模擬(沒有設計ASIC,只是針對FPGA),隨著學習的深入,我漸漸明白了IC設計的基本流程,同時也明白了這條路的艱辛。這個時候我已經做好了跳槽的准備,我向一家業界又一定知名度的IC設計公司投了簡歷,並通過了漫長的面試(4個多小時)。其他的一切我都比較滿意,唯獨薪資差強人意,我也明白原因,因為我是這個行業的新人,我沒有經驗,我再一次將自己清零了。公司老闆問我6000多一個月能不能接受,我知道他也是照章辦事。想想我通信行業的朋友們,基本上都是年薪10萬以上,月薪過萬的也比比皆是,朋友們也幫我介紹了不少待遇不錯的公司,我該怎麼選擇,當時我很猶豫,我熱愛我的事業,我嚮往我的追求,但我也是一個普通的人,我也需要養家糊口,我也想早一點買房買車。生活給我出了一道難題。
愛因斯坦在63歲時說過"一個人沒有在30歲以前達成科學上的最大成就,那他永遠都不會有。"這句話給了我很大的壓力和震動,我馬上就26歲了,離30隻有四年時間,我必須抓緊這幾年寶貴的時間,努力達到我 技術上的最高峰。為了這個理想,為了能離自己的夢更近一些,我選擇了這家IC公司,我明白自己的薪資和公司剛進來的碩士研究生相差無幾,但為了今後的發展只能忍受,一切又得重新開始。換行業是一個非常痛苦的過程,尤其從一個春風得意的位置換到一個陌生的崗位,感覺象從溫暖的被子里鑽出來跳進冰水中,讓人難以接受。在原來那家通信公司,我是唯一兩年時間漲了五次工資的員工,公司和同事都給了我極大的認可,工作上也常常被委以重任。但現在這一切都成了過去,在新的公司我只是一個新人,沒有人知道也沒有人在意我過去的成績。我決定重新開始,我把自己看作新畢業的學生,我要用自己的努力得到公司的認可。進入新的行業是非常痛苦的,我告訴自己必須忍受這一切,雖然外面有很多誘惑,但是既然作出了選擇我就不允許自己輕易放棄。
我現在已經在這家新公司上了一個多月的班,開始非常艱難,現在慢慢適應了。第一個月結束時,TeamLeader找我談話,說我是新進員工中最優秀的一個,我心裡很欣慰,這也算對我努力的一個肯定吧。在這里還要感謝我的女朋友,她給了我很大的支持和鼓舞,每次在我動搖的時候她都在鼓勵我,讓我堅持自己的理想,剛來上海是她讓我不要勉強去做MIS,這次也是她讓我頂住了月薪過萬的誘惑,沒有她我可能不會有今天的成績。
現在的公司有自己的操作系統,自己的CPU、DSP和其它晶元,在這里我能學到世界上最先進的 技術,我們的設計開發不再完全依賴別人的硬體和系統,這讓我很開心。我打算等工作步入正軌後,全力學習新的 知識,實現我的理想。
在後面的兩年裡我給自己定下了幾個目標:
一.努力做好本職工作,在工作上得到公司和同事們的認同;
二.努力學習IC硬體設計 知識,多向同事請教,並利用一切機會多實踐;
三.實現我的實時操作系統的主要部分,完成 TCP/IP 協議棧模塊,並免費發布源 代碼;
四.和我女朋友結婚並買一套小房子,這是最重要的,因為我明白事業是可以重來的,但是珍貴的感情很難失而復得。
在這里提一下我現在開發的操作系統,它是一個實時嵌入式系統,目前支持以下特性:
a.支持時間片輪轉調度和基於優先順序調度,最多64個優先順序;
b.搶占式實時內核;
c.為了便於移植,主體用標准C實現;
d.匯編 代碼非常少,不到100行;
e.支持任務管理,各任務有獨立的堆棧;
f.進程同步和通信目前完成了Semaphore,MessageQueue正在調試;
g.實現了定時系統調用;
h.可以在windows上模擬調試
我還打算下一步實現優先順序反轉保護,EventFlag,DataPipe,內存管理(以前實現過)、驅動介面等。在這之後我還會努力完善它,比如加入文件系統, 協議棧、調試介面等。希望朋友們提出自己的意見和建議,在此不勝感激!
後記:
就像有的朋友說的,我的經歷或許會給一些朋友產生誤導,在這里我必須說明一下。我來上海以前學習過於拚命,常常晚上只睡3個多小時,我身高1米71,那時只有108斤(我現在130多),家人也說我這樣拚命活不過60歲,但是當時的我太固執,我對他們說只要能實現理想活50歲我就夠了。那時的拚命使我的身體受到了影響,有一次早上突然腰肌劇痛難忍,痛的我倒在床上站不起來。雖然我現在已經比較注意,但有時候還會隱隱作痛。後來在女朋友說服了我,來上海以後我不再如此。我經常引用父親的一句話"身體是革命的本錢"。
而且我也發現拚命不是辦法,我可以熬一兩個通宵,最多的一次我連續工作了三天三夜,但是我半個月都沒有恢復過來,這樣是不是得不償失?學習工作應該是一個長期的過程,像馬拉松而不是百米沖刺。我現在非常注意調整學習和工作的強度,我要保證每天盡量有相對充沛的精力,一些年輕的朋友覺得自己也應該拚命努力,這讓我多少有些擔心,如果我的故事能讓你在學習工作上多一點興趣,我會感到很開心,但如果誤導了某些朋友,讓你做一些不值得的付出,我會感到很內疚。
技術沒有貴賤只分,我以前換行業是因為自己的興趣所致,而不是對哪個行業有什麼偏見。我希望我的經歷不要給朋友一個錯誤的導向,覺得我始終向更高的 技術發展。其實各行各業做到頂尖都是很困難的。話又說回來雖然 技術沒有貴賤,但是門檻是有高低的,無論如何,做IC的門檻要比做網頁的高,這一點無可否認。國家各種人才都是需要的,但是作為個人奮發向上的想法還是應該有的,努力在自己喜歡的行業上做的更好,而不應該停留在比較膚淺的層次上。
我是一個自己覺得比較有自知之明的人,或許我最大的優點就是知道自己有很多缺點:)。我的故事中很多的曲折和錯誤都是由我的缺點造成的,希望大家用審慎的眼光看待我的經歷,不要被我的"花言巧語"所迷惑。我學習有些隨心所欲,這給我帶來了無盡的麻煩,也大大阻礙的我的發展。記得我小時候成績比較出色,但是後來學習嚴重偏科,導致我中學成績一再滑坡,也沒有考上什麼好的學校,小時候的一個朋友,當時的成績和我相仿,但是沒有我這個缺點,她上了清華,後來在去了美國深造,在一個著名導師手下研究理論科學,這未嘗不是一條更好的出路。另外我的學習方法也是在不斷改善中的,過去的學習過於講究數量和時間,那樣學習既苦而已效率不高,現在我非常注意學習的效率和技巧,這樣才是學習的捷徑(當然不是指投機取巧),比如說學一相對陌生的 技術,如果有條件,不妨問一問有經驗的人,不需要問很多,往往他不經意的幾句話會給你非常大的幫助,甚至超過你看一個星期的書。帶著這樣的思想再去學習你會節省很多時間,這樣何樂不為呢?這些年中我學了不少的東西,由於開始非常盲目,所以學的東西雜亂無章,現在回想起來讓我啼笑皆非,我把大量的時間浪費在一些沒有必要深入了解的 知識上,畢竟一個人的精力是有限度的。很多朋友很我一樣都背過五筆字形,的確它是個不錯的輸入法,但是對一個研發人員它絕對不值得你去背,你的時間應該花在有價值的地方。我這樣的事情還做過很多,我背過CCED、WPS的命令和快捷鍵,在dBase基本退出歷史舞台後我還花了很多時間去學習它的使用。所以我的學習在前期缺乏規劃,沒有明確的短期目的、中期目標,只有一個虛無飄渺的長期的理想。這就像做設計一樣,好的設計是從需求抽象到 代碼有很多過程,而不能得到了需求就立刻開始開始編碼。
7. 怎麼實現軟體自動安裝
看著你的問題,想起了好幾年前的自己。因為當年的我,跟你有一樣的想法。
當時我是用C語言寫了一個程序,實現了這個需求,但是其實後來我自己發現,其實這個東西我也從來都沒用到過。
現在電腦裡面都很少裝軟體,只是一些工作需要的軟體,而這些工作需要的軟體,是沒有辦法一鍵安裝,因為這些軟體大部分都需要一些配置才能使用。
然後至於什麼QQ,播放器之類的,一般重裝系統之後,去官網下載就OK了,也不折騰了。尤其是用win8之後,能在商店裡下的,都在商店裡下了。
8. 如何新建一個批量處理文件del.bat.新建這種文件需要裝什麼新的軟體嗎
不需要,都是寫出來的,新建一個文本文檔,寫完之後把它保存為del.bat就行了,雙擊就可以運行,這里順便提供常用批處理文件命令給你參考下。 1.Echo 命令 打開回顯或關閉請求回顯功能,或顯示消息。如果沒有任何參數,echo 命令將顯示當前回顯設置。 語法 echo [{on│off}] [message] Sample:@echo off / echo hello world 在實際應用中我們會把這條命令和重定向符號(也稱為管道符號,一般用> >> ^)結合來實現輸入一些命令到特定格式的文件中.這將在以後的例子中體現出來。 2.@ 命令 表示不顯示@後面的命令,在入侵過程中(例如使用批處理來格式化敵人的硬碟)自然不能讓對方看到你使用的命令啦。 Sample:@echo off @echo Now initializing the program,please wait a minite... @format X: /q/u/autoset (format 這個命令是不可以使用/y這個參數的,可喜的是微軟留了個autoset這個參數給我們,效果和/y是一樣的。) 3.Goto 命令 指定跳轉到標簽,找到標簽後,程序將處理從下一行開始的命令。 語法:goto label (label是參數,指定所要轉向的批處理程序中的行。) Sample: if {%1}=={} goto noparms if {%2}=={} goto noparms(如果這里的if、%1、%2你不明白的話,先跳過去,後面會有詳細的解釋。) @Rem check parameters if null show usage :noparms echo Usage: monitor.bat ServerIP PortNumber goto end 標簽的名字可以隨便起,但是最好是有意義的字母啦,字母前加個:用來表示這個字母是標簽,goto命令就是根據這個:來尋找下一步跳到到那裡。最好有一些說明這樣你別人看起來才會理解你的意圖啊。 4.Rem 命令 注釋命令,在C語言中相當與/*--------*/,它並不會被執行,只是起一個注釋的作用,便於別人閱讀和你自己日後修改。 Rem Message Sample:@Rem Here is the description. 5.Pause 命令 運行 Pause 命令時,將顯示下面的消息: Press any key to continue . . . Sample: @echo off :begin a:*.* d:\back echo Please put a new disk into driver A pause goto begin 在這個例子中,驅動器 A 中磁碟上的所有文件均復制到d:\back中。顯示的注釋提示您將另一張磁碟放入驅動器 A 時,pause 命令會使程序掛起,以便您更換磁碟,然後按任意鍵繼續處理。 6.Call 命令 從一個批處理程序調用另一個批處理程序,並且不終止父批處理程序。call 命令接受用作調用目標的標簽。如果在腳本或批處理文件外使用 Call,它將不會在命令行起作用。 語法 call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]] 參數 [Drive:}[Path] FileName 指定要調用的批處理程序的位置和名稱。filename 參數必須具有 .bat 或 .cmd 擴展名。 7.start 命令 調用外部程序,所有的DOS命令和命令行程序都可以由start命令來調用。 入侵常用參數: MIN 開始時窗口最小化 SEPARATE 在分開的空間內開始 16 位 Windows 程序 HIGH 在 HIGH 優先順序類別開始應用程序 REALTIME 在 REALTIME 優先順序類別開始應用程序 WAIT 啟動應用程序並等候它結束 parameters 這些為傳送到命令/程序的參數 執行的應用程序是 32-位 GUI 應用程序時,CMD.EXE 不等應用程序終止就返回命令提示。如果在命令腳本內執行,該新行為則不會發生。 8.choice 命令 choice 使用
9. 如何新建一個批量處理文件del.bat.新建這種文件需要裝什麼新的軟體嗎
不需要,都是寫出來的,新建一個文本文檔,寫完之後把它保存為del.bat就行了,雙擊就可以運行,這里順便提供常用批處理文件命令給你參考下。
1.Echo 命令
打開回顯或關閉請求回顯功能,或顯示消息。如果沒有任何參數,echo 命令將顯示當前回顯設置。
語法
echo [{on│off}] [message]
Sample:@echo off / echo hello world
在實際應用中我們會把這條命令和重定向符號(也稱為管道符號,一般用> >> ^)結合來實現輸入一些命令到特定格式的文件中.這將在以後的例子中體現出來。
2.@ 命令
表示不顯示@後面的命令,在入侵過程中(例如使用批處理來格式化敵人的硬碟)自然不能讓對方看到你使用的命令啦。
Sample:@echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset (format 這個命令是不可以使用/y這個參數的,可喜的是微軟留了個autoset這個參數給我們,效果和/y是一樣的。)
3.Goto 命令
指定跳轉到標簽,找到標簽後,程序將處理從下一行開始的命令。
語法:goto label (label是參數,指定所要轉向的批處理程序中的行。)
Sample:
if {%1}=={} goto noparms
if {%2}=={} goto noparms(如果這里的if、%1、%2你不明白的話,先跳過去,後面會有詳細的解釋。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
標簽的名字可以隨便起,但是最好是有意義的字母啦,字母前加個:用來表示這個字母是標簽,goto命令就是根據這個:來尋找下一步跳到到那裡。最好有一些說明這樣你別人看起來才會理解你的意圖啊。
4.Rem 命令
注釋命令,在C語言中相當與/*--------*/,它並不會被執行,只是起一個注釋的作用,便於別人閱讀和你自己日後修改。
Rem Message
Sample:@Rem Here is the description.
5.Pause 命令
運行 Pause 命令時,將顯示下面的消息:
Press any key to continue . . .
Sample:
@echo off
:begin
a:*.* d:\back
echo Please put a new disk into driver A
pause
goto begin
在這個例子中,驅動器 A 中磁碟上的所有文件均復制到d:\back中。顯示的注釋提示您將另一張磁碟放入驅動器 A 時,pause 命令會使程序掛起,以便您更換磁碟,然後按任意鍵繼續處理。
6.Call 命令
從一個批處理程序調用另一個批處理程序,並且不終止父批處理程序。call 命令接受用作調用目標的標簽。如果在腳本或批處理文件外使用 Call,它將不會在命令行起作用。
語法
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
參數
[Drive:}[Path] FileName
指定要調用的批處理程序的位置和名稱。filename 參數必須具有 .bat 或 .cmd 擴展名。
7.start 命令
調用外部程序,所有的DOS命令和命令行程序都可以由start命令來調用。
入侵常用參數:
MIN 開始時窗口最小化
SEPARATE 在分開的空間內開始 16 位 Windows 程序
HIGH 在 HIGH 優先順序類別開始應用程序
REALTIME 在 REALTIME 優先順序類別開始應用程序
WAIT 啟動應用程序並等候它結束
parameters 這些為傳送到命令/程序的參數
執行的應用程序是 32-位 GUI 應用程序時,CMD.EXE 不等應用程序終止就返回命令提示。如果在命令腳本內執行,該新行為則不會發生。
8.choice 命令
choice 使用此命令可以讓用戶輸入一個字元,從而運行不同的命令。使用時應該加/c:參數,c:後應寫提示可輸入的字元,之間無空格。它的返回碼為1234......
如: choice /c:dme defrag,mem,end
將顯示
defrag,mem,end[D,M,E]?
Sample:
Sample.bat的內容如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag (應先判斷數值最高的錯誤碼)
if errorlevel 2 goto mem
if errotlevel 1 goto end
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
此文件運行後,將顯示 defrag,mem,end[D,M,E]? 用戶可選擇d m e ,然後if語句將作出判斷,d表示執行標號為defrag的程序段,m表示執行標號為mem的程序段,e表示執行標號為end的程序段,每個程序段最後都以goto end將程序跳到end標號處,然後程序將顯示good bye,文件結束。
9.If 命令
if 表示將判斷是否符合規定的條件,從而決定執行不同的命令。 有三種格式:
1、if "參數" == "字元串" 待執行的命令
參數如果等於指定的字元串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號)
如if "%1"=="a" format a:
if {%1}=={} goto noparms
if {%2}=={} goto noparms
2、if exist 文件名 待執行的命令
如果有指定的文件,則條件成立,運行命令,否則運行下一句。
如if exist config.sys edit config.sys
3、if errorlevel / if not errorlevel 數字 待執行的命令
如果返回碼等於指定的數字,則條件成立,運行命令,否則運行下一句。
如if errorlevel 2 goto x2
DOS程序運行時都會返回一個數字給DOS,稱為錯誤碼errorlevel或稱返回碼,常見的返回碼為0、1。
10.for 命令
for 命令是一個比較復雜的命令,主要用於參數在指定的范圍內循環執行命令。
在批處理文件中使用 FOR 命令時,指定變數請使用 %%variable
10. c語言初學者!要學的是c primer plus(第五版),想要個支持c99的編譯器!我的電腦是w
最新版本,支持win10 64位
社區版(個人免費):
http://download.microsoft.com/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464C/vs2015.com_chs.iso
專業版:
http://download.microsoft.com/download/B/8/9/B898E46E-CBAE-4045-A8E2-2D33DD36F3C4/vs2015.pro_chs.iso
企業版:
http://download.microsoft.com/download/B/8/F/B8F1470D-2396-4E7A-83F5-AC09154EB925/vs2015.ent_chs.iso
測試專業版:
http://download.microsoft.com/download/0/9/5/095317BD-41B4-4D71-AAE8-C2D1D1033B92/vs2015.testpro_chs.iso
更多下載:
https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs
附送專業版批量激活秘鑰一枚:HMGNV-WCYXV-X7G9W-YCX63-B98R2