• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 319, comments - 22, trackbacks - 0, articles - 11
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            操作系統(tǒng)裝載應(yīng)用程序后,做完初始化工作就轉(zhuǎn)到程序的入口點執(zhí)行。程序的默認(rèn)入 口點由連接程序設(shè)置, 不同的連接器選擇的入口函數(shù)也不盡相同。在VC++下,連接器對控制臺程序設(shè)置的入口函數(shù)是 mainCRTStartup,mainCRTStartup 再調(diào)用main 函數(shù);對圖形用戶界面(GUI)程序設(shè)置的入口函數(shù)是 WinMainCRTStartup,WinMainCRTStartup 調(diào)用你自己寫的 WinMain 函數(shù)。具體設(shè)置哪個入口點是由連接器的“/subsystem:”選項確定的,它告訴操作系統(tǒng)如何運行編譯生成的.EXE文件。可以指定四種方 式:CONSOLE|WINDOWS|NATIVE|POSIX。如果這個選項參數(shù)的值為 WINDOWS,則表示該應(yīng)用程序運行時不需要控制臺,有關(guān)連接器參數(shù)選項的詳細(xì)說明請參考 MSDN 庫。

            以下四種組合,可以實現(xiàn)console和windows模式的混合,可以達到不彈出DOS窗口的效果,也可以達到在Windows程序中向控制臺輸出printf信息的目的。
            #pragma comment( linker, "/subsystem:windows /entry:WinMainCRTStartup" )
            #pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )
            #pragma comment( linker, "/subsystem:console /entry:mainCRTStartup" )
            #pragma comment( linker, "/subsystem:console /entry:WinMainCRTStartup" )

            int APIENTRY WinMain(HINSTANCE hInstance,
            HINSTANCE hPrevInstance,
            LPSTR      lpCmdLine,
            int        nCmdShow)
            {
                  // ...
            }

            int main(void)
            {
                  // ...
            }

            posted @ 2011-06-18 15:09 RTY 閱讀(1313) | 評論 (0)編輯 收藏

            Windows 7 SP1發(fā)布后遭遇的藍屏、黑屏、錯誤問題著實不少,微軟也在不停地通過知識庫文章解釋原因、提供修復(fù)補丁,今天要說的是又一起藍屏事故。如果你正在運行Windows 7 SP1或者Windows Server 2008 R2 SP1,配置了自動連接無線網(wǎng)絡(luò),然后重新啟動或者從休眠/睡眠模式中恢復(fù),并開始通過有線或者無線網(wǎng)絡(luò)與其它計算機傳輸數(shù)據(jù),那么“恭喜”你,有些時候你就會看到傳說中的藍屏,并有如下錯誤提示:

            STOP: 0x0000007F (parameter1, parameter2, parameter3, parameter4)

            UNEXPECTED_KERNEL_MODE_TRAP

            另外,如果你的Windows 7 SP1/Windows Server 2008 R2 SP計算機安裝過改善TCP還回延遲和UDP延遲的修復(fù)補丁KB979612,也可能會碰到如上問題。

            微軟對此的解釋非常簡單:操作系統(tǒng)沒有定位足夠的堆棧空間。

            微軟已經(jīng)就此問題制作了一個編號KB2519736的熱修復(fù)補丁,但是因為問題并不是很普遍,并沒有公開發(fā)布,有需要的用戶可以自行索取:
            http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2519736&kbln=en-us

            微軟再發(fā)Windows 7 SP1藍屏補丁

            編譯/驅(qū)動之家
            @import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

            posted @ 2011-06-15 19:53 RTY 閱讀(277) | 評論 (0)編輯 收藏

                 摘要: @import url(http://www.shnenglu.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 2010-02-06 09:31 佚名 博客園 我要評論(0) 字號...  閱讀全文

            posted @ 2011-06-15 06:24 RTY 閱讀(246) | 評論 (0)編輯 收藏

            之 所以拋棄char*的字符串而選用C++標(biāo)準(zhǔn)程序庫中的string類,是因為他和前者比較起來,不必 擔(dān)心內(nèi)存是否足夠、字符串長度等等,而且作為一個類出現(xiàn),他集成的操作函數(shù)足以完成我們大多數(shù)情況下(甚至是100%)的需要。我們可以用 = 進行賦值操作,== 進行比較,+ 做串聯(lián)(是不是很簡單?)。我們盡可以把它看成是C++的基本數(shù)據(jù)類型。
                好了,進入正題………
            首先,為了在我們的程序中使用string類型,我們必須包含頭文件 <string>。如下:

                  #i nclude <string> //注意這里不是string.h string.h是C字符串頭文件

            1.聲明一個C++字符串

            聲明一個字符串變量很簡單:
                  string Str;
            這樣我們就聲明了一個字符串變量,但既然是一個類,就有構(gòu)造函數(shù)和析構(gòu)函數(shù)。上面的聲明沒有傳入?yún)?shù),所以就直接使用了string的默認(rèn)的構(gòu)造函數(shù),這個函數(shù)所作的就是把Str初始化為一個空字符串。String類的構(gòu)造函數(shù)和析構(gòu)函數(shù)如下:
            a)      string s;    //生成一個空字符串s
            b)      string s(str) //拷貝構(gòu)造函數(shù) 生成str的復(fù)制品

            c)      string s(str,stridx) //將字符串str內(nèi)“始于位置stridx”的部分當(dāng)作字符串的初值
            d)      string s(str,stridx,strlen) //將字符串str內(nèi)“始于stridx且長度頂多strlen”的部分作為字符串的初值
            e)      string s(cstr) //將C字符串作為s的初值
            f)      string s(chars,chars_len) //將C字符串前chars_len個字符作為字符串s的初值。
            g)      string s(num,c) //生成一個字符串,包含num個c字符
            h)      string s(beg,end) //以區(qū)間beg;end(不包含end)內(nèi)的字符作為字符串s的初值
            i)      s.~string() //銷毀所有字符,釋放內(nèi)存
            都很簡單,我就不解釋了。

            2.字符串操作函數(shù)

            這里是C++字符串的重點,我先把各種操作函數(shù)羅列出來,不喜歡把所有函數(shù)都看完的人可以在這里找自己喜歡的函數(shù),再到后面看他的詳細(xì)解釋。
            a) =,assign()     //賦以新值
            b) swap()     //交換兩個字符串的內(nèi)容
            c) +=,append(),push_back() //在尾部添加字符
            d) insert() //插入字符
            e) erase() //刪除字符
            f) clear() //刪除全部字符
            g) replace() //替換字符

            h) + //串聯(lián)字符串
            i) ==,!=,<,<=,>,>=,compare()    //比較字符串
            j) size(),length()    //返回字符數(shù)量
            k) max_size() //返回字符的可能最大個數(shù)
            l) empty()    //判斷字符串是否為空
            m) capacity() //返回重新分配之前的字符容量
            n) reserve() //保留一定量內(nèi)存以容納一定數(shù)量的字符
            o) [ ], at() //存取單一字符
            p) >>,getline() //從stream讀取某值
            q) <<    //將謀值寫入stream
            r) copy() //將某值賦值為一個
            C_string
            s) c_str() //將內(nèi)容以C_string返回

            t) data() //將內(nèi)容以字符數(shù)組形式返回
            u) substr() //返回某個子字符串
            v)查找函數(shù)
            w)begin() end() //提供類似STL的迭代器支持
            x) rbegin() rend() //逆向迭代器
            y) get_allocator() //返回配置器
            下面詳細(xì)介紹: 

            21 C++字符串和C字符串的轉(zhuǎn)換

                  C ++提供的由C++字符串得到對應(yīng)的C_string的方法是使用data()、c_str()和copy(),其中,data()以字符數(shù)組的形式返回字符串內(nèi)容,但并不添加’\0’。c_str()返回一個以‘\0’結(jié)尾的字符數(shù)組,而copy()則把字符串的內(nèi)容復(fù)制或?qū)懭爰扔械腸_string或 字符數(shù)組內(nèi)。C++字符串并不以’\0’結(jié)尾。我的建議是在程序中能使用C++字符串就使用,除非萬不得已不選用c_string。由于只是簡單介紹,詳細(xì)介紹掠過,誰想進一步了解使用中的注意事項可以給我留言(到我的收件箱)。我詳細(xì)解釋。

            22 大小和容量函數(shù)

                一 個C++字符 串存在三種大小:a)現(xiàn)有的字符數(shù),函數(shù)是size()和length(),他們等效。Empty()用來檢查字符串是否為空。b)max_size() 這個大小是指當(dāng)前C++字符串最多能包含的字符數(shù),很可能和機器本身的限制或者字符串所在位置連續(xù)內(nèi)存的大小有關(guān)系。我們一般情況下不用關(guān)心他,應(yīng)該大小 足夠我們用的。但是不夠用的話,會拋出length_error異常c)capacity()重新分配內(nèi)存之前 string所能包含的最大字符數(shù)。這里另一個需要指出的是reserve()函數(shù),這個函數(shù)為string重新分配內(nèi)存。重新分配的大小由其參數(shù)決定, 默認(rèn)參數(shù)為0,這時候會對string進行非強制性縮減。

            還有必要再重復(fù)一下 C++字符串和C字符串轉(zhuǎn)換的問 題,許多人會遇到這樣的問題,自己做的程序要調(diào)用別人的函數(shù)、類什么的(比如數(shù)據(jù)庫連接函數(shù)Connect(char*,char*)),但別人的函數(shù)參 數(shù)用的是char*形式的,而我們知道,c_str()、data()返回的字符數(shù)組由該字符串擁有,所以是一種const char*,要想作為上面提及的函數(shù)的參數(shù),還必須拷貝到一個char*,而我們的原則是能不使用C字符串就不使用。那么,這時候我們的處理方式是:如果 此函數(shù)對參數(shù)(也就是char*)的內(nèi)容不修改的話,我們可以這樣Connect((char*)UserID.c_str(), (char*)PassWD.c_str()),但是這時候是存在危險的,因為這樣轉(zhuǎn)換后的字符串其實是可以修改的(有興趣地可以自己試一試),所以我強 調(diào)除非函數(shù)調(diào)用的時候不對參數(shù)進行修改,否則必須拷貝到一個char*上去。當(dāng)然,更穩(wěn)妥的辦法是無論什么情況都拷貝到一個char*上去。同時我們也祈 禱現(xiàn)在仍然使用C字符串進行編程的高手們(說他們是高手一點兒也不為過,也許在我們還穿開襠褲的時候他們就開始編程了,哈哈…)寫的函數(shù)都比較規(guī)范,那樣 我們就不必進行強制轉(zhuǎn)換了。
            23元素存取

            我 們可以使用下標(biāo)操作符[]和函數(shù)at()對元素包含的字符進行訪問。但是應(yīng)該注意的是操作符[]并不檢查索引是否有效(有效索引0~str.length ()),如果索引失效,會引起未定義的行為。而at()會檢查,如果使用 at()的時候索引無效,會拋出out_of_range異常。
                有一個例外不得不說,const string a;的操作符[]對索引值是a.length()仍然有效,其返回值是’\0’。其他的各種情況,a.length()索引都是無效的。舉例如下:
            const string Cstr(“const string”);
            string Str(“string”);

            Str[3];      //ok
            Str.at(3);    //ok

            Str[100]; //未定義的行為
            Str.at(100);    //throw out_of_range

            Str[Str.length()]    //未定義行為
            Cstr[Cstr.length()] //返回 ‘\0’
            Str.at(Str.length());//throw out_of_range
            Cstr.at(Cstr.length()) ////throw out_of_range

            我不贊成類似于下面的引用或指針賦值:
            char& r=s[2];
            char* p= &s[3];
            因為一旦發(fā)生重新分配,r,p立即失效。避免的方法就是不使用。

            24比較函數(shù)

                  C ++字符串支持常見的比較操作符(>,>=,<,<=,==,!=),甚至支持string與C-string的比較(如 str<”hello”)。在使用>,>=,<,<=這些操作符的時候是根據(jù)“當(dāng)前字符特性”將字符按字典順序進行逐一得 比較。字典排序靠前的字符小,比較的順序是從前向后比較,遇到不相等的字符就按這個位置上的兩個字符的比較結(jié)果確定兩個字符串的大小。同時,string (“aaaa”) <string(aaaaa)。
                另一個功能強大的比較函數(shù)是成員函數(shù)compare()。他支持多參數(shù)處理,支持用索引值和長度定位子串來進行比較。他返回一個整數(shù)來表示比較結(jié)果,返回值意義如下:0-相等 〉0-大于 <0-小于。舉例如下:
                  string s(“abcd”);
                
                  s.compare(“abcd”); //返回0
                  s.compare(“dcba”); //返回一個小于0的值
                  s.compare(“ab”); //返回大于0的值
                
            s.compare(s); //相等
                  s.compare(0,2,s,2,2); //用”ab”和”cd”進行比較 小于零
                  s.compare(1,2,”bcx”,2); //用”bc”和”bc”比較。
            怎么樣?功能夠全的吧!什么?還不能滿足你的胃口?好吧,那等著,后面有更個性化的比較算法。先給個提示,使用的是STL的比較算法。什么?對STL一竅不通?靠,你重修吧!

            25 更改內(nèi)容

            這在字符串的操作中占了很大一部分。

            首先講賦值,第一個賦值方法當(dāng)然是使用操作符=,新值可以是string(如:s=ns) 、c_string(如:s=”gaint”)甚至單一字符(如:s=’j’)。還可以使用成員函數(shù)assign(),這個成員函數(shù)可以使你更靈活的對字符串賦值。還是舉例說明吧:
            s.assign(str); //不說
            s.assign(str,1,3);//如果str是”iamangel” 就是把”ama”賦給字符串
            s.assign(str,2,string::npos);//把字符串str從索引值2開始到結(jié)尾賦給s
            s.assign(“gaint”); //不說
            s.assign(“nico”,5);//把’n’ ‘I’ ‘c’ ‘o’ ‘\0’賦給字符串
            s.assign(5,’x’);//把五個x賦給字符串


            把字符串清空的方法有三個:s=””;s.clear();s.erase();(我越來越覺得舉例比說話讓別人容易懂!)。
            string提供了很多函數(shù)用于插入(insert)、刪除(erase)、替換(replace)、增加字符。
            先說增加字符(這里說的增加是在尾巴上),函數(shù)有 +=、append()、push_back()。舉例如下:
            s+=str;//加個字符串
            s+=”my name is jiayp”;//加個C字符串
            s+=’a’;//加個字符

            s.append(str);
            s.append(str,1,3);//不解釋了 同前面的函數(shù)參數(shù)assign的解釋
            s.append(str,2,string::npos)//不解釋了

            s.append(“my name is jiayp”);
            s.append(“nico”,5);
            s.append(5,’x’);

            s.push_back(‘a’);//這個函數(shù)只能增加單個字符 對STL熟悉的理解起來很簡單

            也許你需要在string中間的某個位置插入字符串,這時候你可以用insert()函數(shù),這個函數(shù)需要你指定一個安插位置的索引,被插入的字符串將放在這個索引的后面。
                  s.insert(0,”my name”);
                  s.insert(1,str);
            這 種形式的insert()函數(shù)不支持傳入單個字符,這時的單個字符必須寫成字符串形式(讓人惡心)。既然你覺得惡心,那就不得不繼續(xù)讀下面一段話:為了插 入單個字符,insert()函數(shù)提供了兩個對插入單個字符操作的重載函數(shù):insert(size_type index,size_type num,chart c)和insert(iterator pos,size_type num,chart c)。其中size_type是無符號整數(shù),iterator是char*,所以,你這么調(diào)用insert函數(shù)是不行的:insert(0,1, ’j’);這時候第一個參數(shù)將轉(zhuǎn)換成哪一個呢?所以你必須這么寫:insert((string::size_type)0,1,’j’)!第二種形式指 出了使用迭代器安插字符的形式,在后面會提及。順便提一下,string有很多操作是使用STL的迭代器的,他也盡量做得和STL靠近。
            刪除函數(shù)erase()的形式也有好幾種(真煩!),替換函數(shù)replace()也有好幾個。舉例吧:
            string s=”il8n”;
            s.replace(1,2,”nternationalizatio”);//從索引1開始的2個替換成后面的C_string
            s.erase(13);//從索引13開始往后全刪除
            s.erase(7,5);//從索引7開始往后刪5個

            26提取子串和字符串連接

            題取子串的函數(shù)是:substr(),形式如下:
            s.substr();//返回s的全部內(nèi)容
            s.substr(11);//從索引11往后的子串
            s.substr(5,6);//從索引5開始6個字符
            把兩個字符串結(jié)合起來的函數(shù)是+。(誰不明白請致電120)

            27輸入輸出操作

            1.>> 從輸入流讀取一個string。
            2.<< 把一個string寫入輸出流。
            另一個函數(shù)就是getline(),他從輸入流讀取一行內(nèi)容,直到遇到分行符或到了文件尾。

            28搜索與查找

            查找函數(shù)很多,功能也很強大,包括了:
                  find()
                  rfind()
                  find_first_of()
                  find_last_of()
                  find_first_not_of()
                  find_last_not_of()
            這些函數(shù)返回符合搜索條件的字符區(qū)間內(nèi)的第一個字符的索引,沒找到目標(biāo)就返回npos。所有的函數(shù)的參數(shù)說明如下:
            第一個參數(shù)是被搜尋的對象。第二個參數(shù)(可有可無)指出string內(nèi)的搜尋起點索引,第三個參數(shù)(可有可無)指出搜尋的字符個數(shù)。比較簡單,不多說不理解的可以向我提出,我再仔細(xì)的解答。當(dāng)然,更加強大的STL搜尋在后面會有提及。
            最 后再說說npos的含義,string::npos的類型是string::size_type,所以,一旦需要把一個索引與npos相比,這個索引值必 須是string::size)type類型的,更多的情況下,我們可以直接把函數(shù)和npos進行比較(如:if(s.find(“jia”)== string::npos))。
                第二部分是關(guān)于C++字符串對迭代器的支持的,視大家的需要我將寫出來(意思就是不需要就算了,我樂得輕省,哈哈…)。
            好 了,大概的對string類型進行了闡述,希望起到拋磚引玉的作用,讓初學(xué)者對string有個了解而不必已開始就面對復(fù)雜的內(nèi)部結(jié)構(gòu)和無數(shù)個注意事項。 對字符串更詳細(xì)地講解有很多參考書,其實我的內(nèi)容也是從C++標(biāo)準(zhǔn)程序庫得來的,加上幾句自己的看法,所以要感謝這本書的作者和譯者。任何人對本文進行引 用都要標(biāo)明作者是Nicolai M.Josuttis 譯者是侯捷/孟巖。不過不要提及我,任何觀點的錯誤都與我無關(guān)(除了這里邊體現(xiàn)我主觀想法的幾句話,也就那幾句話)。

             

            posted @ 2011-06-12 22:32 RTY 閱讀(264) | 評論 (0)編輯 收藏

            參考資料★ http://www.ok2002.com/cc/cc/v.asp?r=a2273562198117 
            重載括號和函數(shù)指針
            //C++中重載括號和C語言中的函數(shù)指針實現(xiàn)同樣的功能
            
            #include<iostream>
            using namespace std;
            
            int add(int a,int b)
            {
            	return a+b;
            }
            
            class class1
            {
            public:
            	int operator()(int x,int y)//重載操作符
            
            	{
            		return x+y;
            	}
            };
            
            void main()
            {
            	int (*p)(int,int)=add;//函數(shù)指針
            
            	cout<<p(5,3)<<endl;
            
            	class1 add;
            	cout<<add(5,3)<<endl;
            }
            
            /*--
            8
            8
            Press any key to continue
            --*/



            posted @ 2011-06-12 21:48 RTY 閱讀(490) | 評論 (0)編輯 收藏

            C、C++中沒有提供直接獲取數(shù)組長度的函數(shù),對于存放字符串的字符數(shù)組提供了一個strlen函數(shù)獲取長度,那么對于其他類型的數(shù)組如何獲取他們的長度呢?其中一種方法是使用sizeof(array) / sizeof(array[0]), 在C語言中習(xí)慣上在 使用時都把它定義成一個宏,比如#define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]));} 。而在C++中則可以使用模板技術(shù)定義一個函數(shù),比如:

            template <class T>

            int getArrayLen(T& array)

            {

            return (sizeof(array) / sizeof(array[0]));

            }

            這樣對于不同類型的數(shù)組都可以使用這個宏或者這個函數(shù)來獲取數(shù)組的長度了。以下是兩個Demo程序,一個C語言的,一個C++的:

            P.S:若數(shù)組為存儲字符串的字符數(shù)組,則所求得的長度還需要減一,即對于宏定義: #define GET_ARRAY_LEN(array,len) {len = (sizeof(array) / sizeof(array[0]) - 1 );} ,對于函數(shù)定義:

            template <class T>

            int getArrayLen(T& array)

            {

            return (sizeof(array) / sizeof(array[0]) - 1);

            }

            原因為存儲字符串的字符數(shù)組末尾有一個'\0'字符,需要去掉它。

            【C語言】

            #include <stdio.h>

            #include <stdlib.h>

            #define GET_ARRAY_LEN(array,len){len = (sizeof(array) / sizeof(array[0]));}

            //定義一個帶參數(shù)的宏,將數(shù)組長度存儲在變量len中

            int main()

            {

            char a[] = {'1','2','3','4'};

            int len;

            GET_ARRAY_LEN(a,len)

            //調(diào)用預(yù)定義的宏,取得數(shù)組a的長度,并將其存儲在變量len中

            printf("%d\n",len);

            system("pause");

            return 0;

            }

            【C++】

            #include <iostream>

            using namespace std;

            template <class T>

            int getArrayLen(T& array)

            {//使用模板定義一個函數(shù)getArrayLen,該函數(shù)將返回數(shù)組array的長度

            return (sizeof(array) / sizeof(array[0]));

            }

            int main()

            {

            char a[] = {'1','2','3'};

            cout << getArrayLen(a) << endl;

            return 0;

            }


            C/C++中如何獲取數(shù)組的長度?

            posted @ 2011-06-12 10:36 RTY 閱讀(1467) | 評論 (0)編輯 收藏

            據(jù)《商業(yè)周刊》報道,和過去14年一樣,在6月6日舊金山蘋果開發(fā)者大會(以下簡稱WWDC)召開當(dāng)天,安德魯·斯通(Andrew Stone)凌晨3點45分就起來了,匆匆做完瑜伽后,他也加入大部隊,等候喬布斯10點的發(fā)布會。斯通以前產(chǎn)一名建筑師,從上世紀(jì)80年代開始,他就為 蘋果電腦寫軟件,在排隊時他不斷與蘋果極客們談?wù)摷夹g(shù),尤其是那些為了節(jié)省費用,徹夜不眠的歐洲人和亞洲人。

            好事:開發(fā)者掙錢了

            今年,比過去有過之而無不及,除了友情之外,好情緒更上層樓:開發(fā)者賺到了錢,簽了更多的合同。現(xiàn)年55歲的斯通說:“你根本不知道這里到底有 多少人狂歡。”在WWDC前一天,他從阿爾伯克基(美國新墨西哥州中部大城)飛來舊金山,追憶當(dāng)年,許多人為了3000美元的會議和旅行費而苦惱。斯通 說:“現(xiàn)在,好的開發(fā)者想掙多少錢就掙多少錢。”

            會展大廳外面的場景只是縮影,蘋果正在獲得開發(fā)者的歡心。消費者買了2億臺iPad、iPhone、iPod Touch,程序世界的規(guī)模性和多樣性是一個主要的原因,蘋果程序店有42萬個應(yīng)用,幾乎是Android市場的兩倍。在WWDC大會上,喬布斯拋出了在 線服務(wù)的“后PC時代”遠景,它為程序員打開機會之門,各類新軟件將崛起。喬布斯告訴聽眾:“我們將離PC和Mac更遠些,轉(zhuǎn)向另外的設(shè)備。我們將把數(shù)字 生活的樞紐轉(zhuǎn)到云計算。”他宣布推出iCloud。基本的iOS操作系統(tǒng)已經(jīng)升級,可以更輕易地拍照,分享文件,尋找文章。通過功能的拓展,喬布斯能說服 消費者放棄非蘋果產(chǎn)品,與開發(fā)者的關(guān)系也會更密切。

            賺100萬美元不是難事

            自由開發(fā)者一直是理想主義者,也是平等主義者,它們懷疑大公司會對開發(fā)者和消費者頤指氣使。蘋果一直在實用性上表現(xiàn)出色,例如,程序開發(fā)工具簡 單易用。蘋果產(chǎn)品之所以有如此多的程序,主要是有很多方法讓開發(fā)者賺錢。在蘋果的程序商店里,消費者大手筆拋下43億美元。它包括了原采購、額外升級和程 序內(nèi)廣告。埃迪·馬克和它的室友將廣告放在免費程序上,現(xiàn)在他們都為統(tǒng)計錢數(shù)而煩惱。馬克說:“我們賺的錢超過100萬美元。”他2008年畢業(yè),本來只 是想在找到工作前賺些租金和啤酒錢。馬克說:“可能有200萬美元吧,不確定。”

            蘋果并沒有壟斷開發(fā)者。根據(jù)市場研究機構(gòu)Evans Data調(diào)查顯示,為Android開發(fā)程序的開發(fā)者占比43.5%,而蘋果iOS為39.7%。蘋果壟斷了高端市場,但Android已經(jīng)被其它手機商 和無線商接納。Evans Data CEO詹尼爾·加文(Janel Garvin)說,黑莓、微軟WIndows Phone、諾基亞Symbian,都有成千上萬的設(shè)備,移動開發(fā)領(lǐng)域已經(jīng)沒有獨立王國了。

            蘋果優(yōu)勢:API、單一的設(shè)備

            為了保持開發(fā)者的忠誠度,蘋果努力完善細(xì)節(jié)。開發(fā)者對蘋果開發(fā)環(huán)境咆哮——包括技術(shù)規(guī)格、指南、程序工具。在過去30年里,開發(fā)者為Mac編 程,現(xiàn)在的技術(shù)也一樣,它們在Mac上為iPhone編程很輕松。況且還有iPhone模擬器,這是一款軟件,開發(fā)者通過它就能在Mac顯示屏上確定程序 在手機上的運行狀態(tài)。蘋果API也十分出色,開發(fā)者利用它可以更好的發(fā)揮系統(tǒng)的性能。前來聽喬布斯布道的5200名工程師里中,許多都對一些消費者功能不 滿,比如無線、不支持PC同步,但對于新的1500個API,他們還是大表贊賞。這聽起來復(fù)雜,實際上也復(fù)雜。到目前為止,蘋果只出了三款移動產(chǎn)品,相比 于Android設(shè)備來說,為iOS寫軟件要更容易,Android設(shè)備更多,每款都有不同。馬薩諸塞大學(xué)計算機系畢業(yè)生亞當(dāng)·威廉姆斯(Adam Williams)通過iPhone程序賺了10萬美元,他曾考慮為Android寫程序,花了幾周嘗試Google開發(fā)者工具后便放棄了,他說:“為了 一個可疑的回報,要做的工作太多了。”

            小開發(fā)者抱怨“不平等”

            開發(fā)者的抱怨也不只如此。正如過去和現(xiàn)在的技術(shù)威權(quán)一樣,蘋果也沒有接受伙伴們創(chuàng)造的軟件類別。當(dāng)蘋果資深副總裁福斯特 (Scott Forstall)演示iOS新功能,它能提醒用戶定時喝牛奶時,新功能卻引起一些公司的不滿,比如Remember The Milk(待辦事項管理應(yīng)用程序名)。Salesforce.com CEO馬克·貝尼奧夫(Marc Benioff)也參與了WWDC大會,他說:“人群中傳出抱怨聲,這些公司突然意識到自己不再存在了。”

            盡管喬布斯的軟件生態(tài)系統(tǒng)看起來平等,事實卻并非如此。像EA這些大的軟件商擁有專門帳戶,可以及時提交問題,被喬布斯提及的機會也更多,更容 易出現(xiàn)在蘋果的廣告里。而小的開發(fā)者卻要飽受等待之苦,指望蘋果程序?qū)徍藛T大發(fā)慈悲,也無法影響到?jīng)Q策。在Shotgun免費程序獲得成功后,埃迪·馬克 又為電影《變異編年史》(Mutant Chronicles)編寫了一個促銷程序。等到蘋果審核通過時,電影已經(jīng)出來了,早就從電影院下線了。馬克說:“它從沒有激活,我想這主要是因為我們是 跑龍?zhí)椎模矣锌嚯y言。”

            高標(biāo)準(zhǔn)

            從某些方面來看,主觀系統(tǒng)恰是蘋果的一大優(yōu)勢:方便質(zhì)量控制。Shopkick CEO雷丁(Cyriac Roeding)說:“它們的標(biāo)準(zhǔn)相當(dāng)高,不要那些山寨品,也不要之前做過的。”Shopkick主要制造小設(shè)備,當(dāng)用戶走進零售店里,設(shè)備可以用來確定 iPhone用戶身份。在向蘋果開發(fā)者關(guān)系聯(lián)絡(luò)員介紹程序時,他光是演示幻燈片還不夠,還要真正證明程序的實際可行性。程序的確管用,現(xiàn)在Target、 百思買、Macy's都使用Shopkick的設(shè)備。

            斯通堅決跟著蘋果走。回到阿爾伯克基,他每周都要和iOS極客聚會,這些人你可以聘請他們。斯通像個工頭,帶著編程人員、數(shù)據(jù)庫專家、用戶界面設(shè)計師、商務(wù)人士一起工作,做他聽到的項目。斯通說:“許多企業(yè)投入到開發(fā)中,它像是新的女朋友一樣受歡迎。”

            posted @ 2011-06-10 07:09 RTY 閱讀(246) | 評論 (0)編輯 收藏

            為了紀(jì)念電吉他之父萊斯·保羅(Les Paul,1915年6月9日-2009年8月13日)誕辰96周年,Google Doodle又出神作,首頁的Logo被設(shè)計成一個電吉他形,并且鼠標(biāo)滑過會彈出美妙的音樂,當(dāng)你按下鍵盤圖標(biāo)時,還可以直接用鍵盤彈奏這個“電吉他”。

            彈了幾下,發(fā)現(xiàn)自己很有音樂天賦呢,于是決定保存下來,永久收藏。

            下面是我從Google首頁上摳下來的電吉他源代碼,去掉了無關(guān)代碼,Google保留所有權(quán)利。

            Google 電吉他 在線演示:

            Google 電吉他 源代碼打包下載:

            Google電吉他源代碼

            只要使用iframe 引用 “google-guitar.htm”,就可以把整個電吉他效果加到你的獨立博客或網(wǎng)站中去了。

            PS: 本地使用會由于Flash安全設(shè)置而無法發(fā)聲,上傳到服務(wù)器后一切正常,通過IE/FF/Chrome測試。

            Google 電吉他 譜子:

            網(wǎng)友們提供了好多譜子呢,這里挑幾首簡單的,先按下鍵盤圖標(biāo),然后用鍵盤彈,記得關(guān)閉輸入法。

            兩只老虎 (我的最愛^_*)
            TYUT TYUT UIO UIO OPOIUT OPOIUT UWT UWT
            滄海一聲笑
            POUYT UYTEW WEWETYUOP PPOUYTY
            隱形的翅膀
            358787 6568321 11186532122 358787 6568321 1118653211
            標(biāo)簽: 
            除非注明,本博客文章均系原創(chuàng),轉(zhuǎn)載請以鏈接形式標(biāo)明出處地址。

            posted @ 2011-06-10 06:28 RTY 閱讀(368) | 評論 (0)編輯 收藏

            中文名: 英特爾® 高性能并行程序開發(fā)工具套件 2011
            英文名: Intel® Parallel Studio XE 2011
            資源格式: 壓縮包
            發(fā)行時間: 2010年9月
            制作發(fā)行: Intel®
            地區(qū): 美國
            語言: 英文
            簡介: 
            Intel <wbr>Parallel <wbr>Studio <wbr>XE <wbr>2011
                2010年9月3日,北京 —— 今天,英特爾正式推出Intel® Parallel Studio XE 2011,該并行程序開發(fā)工具套件在C++編譯器、錯誤檢查與性能調(diào)試工具中增加了擴展的多線程庫和強大的多線程編程建議功能。
                作為功能卓越的、完整的性能優(yōu)化套件,英特爾® Parallel Studio XE 2011幫助軟件開發(fā)者更輕松地提高串行和并行應(yīng)用的性能和可靠性,以便充分利用最新的多核處理器。該版本添加了一套新的旨在充分利用并行處理的并行模塊——英特爾®并行構(gòu)建模塊、可引導(dǎo)從串行到并行過渡的強大多線程編程輔助工具——英特爾® Parallel Advisor XE,以及包括全面支持Microsoft Visual Studio 2005、2008、2010開發(fā)環(huán)境在內(nèi)的一系列強化功能。
            組件包括:
            1、Intel® VTune™ Amplifier XE
            2、Intel® Inspector XE 
            3、Intel® Static Security Analyzer
            4、Intel® Parallel Building Blocks
            5、Intel® Integrated Performance Primitives 
            6、Intel® Threading Building Blocks
            7、Intel® Math Kernel Library
            8、Intel® C++ Compiler XE
            9、Intel® Visual Fortran Compiler XE
            10、Intel® Parallel Debugger Extension

            下載
            1、Parallel Studio XE 2010 Update1安裝程序下載地址:
            http://registrationcenter-download.intel.com/akdlm/irc_nas/2069/parallel_studio_xe_2011_update1_setup.exe
            2、正版授權(quán)文件下載地址:
            如果網(wǎng)盤過期,請將以下內(nèi)容用記事本保存為.LIC文件。
            PACKAGE I01584458 INTEL 2014.0228 27243F48B724 \
            COMPONENTS="ArBBW ArBBL ArBBM CClusOMPL CComp CCompL CCompM \
            CCompW CCompP CCompPL CCompPM CCompPW CLMKern CLMKernL CLMKernM \
            CLMKernW Dbg DbgL DbgM DbgW DbgMID DbgMIDL DbgMIDM DbgMIDW EBComp \
            FClusOMPL FComp FCompL FCompM FCompW IClsTktL IClsTktM IClsTktW IMemChkL \
            IMemChkM IMemChkW ISVXscDbgWCE ITrAnlL ITrAnlM ITrAnlW ITrColL \
            ITrColM ITrColW MKern MKernL MKernM MKernW MPass MPassL MPassM \
            MPassW OEMXscDbgWCE OEMXscDbgW PAmpl PAmplL PAmplM PAmplW \
            PInsp PInspL PInspM PInspW PerfAnl PerfAnlOmp PerfAnlMID \
            PerfAnlMIDL PerfAnlMIDM PerfAnlMIDW PerfPrim PerfPrimL \
            PerfPrimM PerfPrimW SampEnbL SampEnbM SampEnbW StaticAnlW \
            StaticAnlM StaticAnlL TAnalGuiL TAnalCliL TCheckCliL TCheckCliM \
            TCheckCliW TCheckGuiL TCheckGuiM TCheckGuiW ThrAdv ThrAdvL ThrAdvM ThrAdvW \
            ThreadAnlGui ThreadBB ThreadBBL ThreadBBM ThreadBBW TPITrAnlL \
            TPMathStatW TProfileCliW TProfileGuiW XlbtjL XlbtjM XlbtjW \
            XscaleCCompWCE XscaleCCompW XscOSPlgP XscOSPlgS XscOSPlgN \
            XscOSPlgL XsscL XsscM XsscW XssjL XssjM XssjW" OPTIONS=SUITE \ 
            ck=84 SIGN=DF8C3226447E
            INCREMENT I01584458 INTEL 2014.0228 28-feb-2014 uncounted \
            817ECE176C69 VENDOR_STRING="SUPPORT=COM ENDIAN=EIA \
            https://registrationcenter.intel.com" HOSTID=ID=06752907 \
            PLATFORMS="amd64_re i86_n ia64_n i86_mac i86_r i86_re \
            it64_lr it64_re i86_g i86_l it64_n i86_x" ck=112 SN=SMSATVVN463L \
            TS_OK SIGN=9CDED670EDEC
            PACKAGE I01584458 INTEL 2014.0228 27243F48B724 \
            COMPONENTS="ArBBW ArBBL ArBBM CClusOMPL CComp CCompL CCompM \
            CCompW CCompP CCompPL CCompPM CCompPW CLMKern CLMKernL CLMKernM \
            CLMKernW Dbg DbgL DbgM DbgW DbgMID DbgMIDL DbgMIDM DbgMIDW EBComp \
            FClusOMPL FComp FCompL FCompM FCompW IClsTktL IClsTktM IClsTktW IMemChkL \
            IMemChkM IMemChkW ISVXscDbgWCE ITrAnlL ITrAnlM ITrAnlW ITrColL \
            ITrColM ITrColW MKern MKernL MKernM MKernW MPass MPassL MPassM \
            MPassW OEMXscDbgWCE OEMXscDbgW PAmpl PAmplL PAmplM PAmplW \
            PInsp PInspL PInspM PInspW PerfAnl PerfAnlOmp PerfAnlMID \
            PerfAnlMIDL PerfAnlMIDM PerfAnlMIDW PerfPrim PerfPrimL \
            PerfPrimM PerfPrimW SampEnbL SampEnbM SampEnbW StaticAnlW \
            StaticAnlM StaticAnlL TAnalGuiL TAnalCliL TCheckCliL TCheckCliM \
            TCheckCliW TCheckGuiL TCheckGuiM TCheckGuiW ThrAdv ThrAdvL ThrAdvM ThrAdvW \
            ThreadAnlGui ThreadBB ThreadBBL ThreadBBM ThreadBBW TPITrAnlL \
            TPMathStatW TProfileCliW TProfileGuiW XlbtjL XlbtjM XlbtjW \
            XscaleCCompWCE XscaleCCompW XscOSPlgP XscOSPlgS XscOSPlgN \
            XscOSPlgL XsscL XsscM XsscW XssjL XssjM XssjW" OPTIONS=SUITE \ 
            ck=84 SIGN=DF8C3226447E
            INCREMENT I01584458 INTEL 2014.0228 28-feb-2014 uncounted \
            74D04C752CBC VENDOR_STRING="SUPPORT=COM ENDIAN=EIA \
            https://registrationcenter.intel.com" HOSTID=ID=06752907 \
            PLATFORMS="amd64_re i86_n ia64_n i86_mac i86_r i86_re it64_lr \
            it64_re i86_g i86_l it64_n i86_x" ck=104 SN=SMSATVVN463L \
            SIGN=34CDAA3606EA

            posted @ 2011-06-10 06:23 RTY 閱讀(3847) | 評論 (3)編輯 收藏

            C++加密算法庫 Botan 1.9.18 發(fā)布。

            Botan 是一個 C++ 的加密算法庫,支持 AES, DES, SHA-1, RSA, DSA, Diffie-Hellman 等多種算法,支持 X.509 認(rèn)證以及CRLs 和 PKCS #10 ,這里是一段示例代碼

            ECC算法的大量優(yōu)化,提升了20%-50%的性能。影響Solaris用戶bug被修復(fù),Visual C++ 2010 和Clang 下引發(fā)的bug被修復(fù)。拒絕GOST 34.10認(rèn)證的bug被修復(fù)。等。



            http://botan.randombit.net/index.html

            漢堡加盟http://www.fanzaihanbao.com/漢堡店加盟

            posted @ 2011-06-04 14:05 RTY 閱讀(1506) | 評論 (0)編輯 收藏

            僅列出標(biāo)題
            共31頁: First 14 15 16 17 18 19 20 21 22 Last 
            精品久久久一二三区| 久久99热精品| 久久久久亚洲AV片无码下载蜜桃| 国产精品久久久久jk制服| 欧美激情精品久久久久久久| 午夜精品久久久久久久无码| 亚洲欧美伊人久久综合一区二区| 一本色综合网久久| 国产一区二区精品久久| 久久精品国产亚洲精品| 综合久久精品色| 99久久久精品免费观看国产| 久久最新免费视频| 蜜桃麻豆www久久| 中文字幕日本人妻久久久免费| 久久久老熟女一区二区三区| 国产亚洲成人久久| 久久婷婷色香五月综合激情| 九九99精品久久久久久| 一本色道久久88—综合亚洲精品| 久久er热视频在这里精品| 久久综合亚洲色HEZYO社区| 精品久久久久久久中文字幕| 99久久精品毛片免费播放| 精品国产99久久久久久麻豆| 亚洲国产精品综合久久网络 | 无码国内精品久久人妻| 国产精品gz久久久| 99久久人人爽亚洲精品美女| 亚洲精品乱码久久久久66| 久久影视综合亚洲| 久久天天躁狠狠躁夜夜av浪潮 | 久久国产亚洲精品麻豆| 久久精品国产亚洲αv忘忧草| 青青草原综合久久大伊人精品| av色综合久久天堂av色综合在| 久久影院午夜理论片无码| 久久精品中文字幕有码| 久久亚洲高清综合| 中文成人久久久久影院免费观看| 欧美伊人久久大香线蕉综合69 |