• <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++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

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

            以下四種組合,可以實現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 閱讀(1321) | 評論 (0)編輯 收藏

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

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

            UNEXPECTED_KERNEL_MODE_TRAP

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

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

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

            微軟再發Windows 7 SP1藍屏補丁

            編譯/驅動之家
            @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 閱讀(281) | 評論 (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 閱讀(251) | 評論 (0)編輯 收藏

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

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

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

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

            c)      string s(str,stridx) //將字符串str內“始于位置stridx”的部分當作字符串的初值
            d)      string s(str,stridx,strlen) //將字符串str內“始于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) //以區間beg;end(不包含end)內的字符作為字符串s的初值
            i)      s.~string() //銷毀所有字符,釋放內存
            都很簡單,我就不解釋了。

            2.字符串操作函數

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

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

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

            21 C++字符串和C字符串的轉換

                  C ++提供的由C++字符串得到對應的C_string的方法是使用data()、c_str()和copy(),其中,data()以字符數組的形式返回字符串內容,但并不添加’\0’。c_str()返回一個以‘\0’結尾的字符數組,而copy()則把字符串的內容復制或寫入既有的c_string或 字符數組內。C++字符串并不以’\0’結尾。我的建議是在程序中能使用C++字符串就使用,除非萬不得已不選用c_string。由于只是簡單介紹,詳細介紹掠過,誰想進一步了解使用中的注意事項可以給我留言(到我的收件箱)。我詳細解釋。

            22 大小和容量函數

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

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

            我 們可以使用下標操作符[]和函數at()對元素包含的字符進行訪問。但是應該注意的是操作符[]并不檢查索引是否有效(有效索引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];
            因為一旦發生重新分配,r,p立即失效。避免的方法就是不使用。

            24比較函數

                  C ++字符串支持常見的比較操作符(>,>=,<,<=,==,!=),甚至支持string與C-string的比較(如 str<”hello”)。在使用>,>=,<,<=這些操作符的時候是根據“當前字符特性”將字符按字典順序進行逐一得 比較。字典排序靠前的字符小,比較的順序是從前向后比較,遇到不相等的字符就按這個位置上的兩個字符的比較結果確定兩個字符串的大小。同時,string (“aaaa”) <string(aaaaa)。
                另一個功能強大的比較函數是成員函數compare()。他支持多參數處理,支持用索引值和長度定位子串來進行比較。他返回一個整數來表示比較結果,返回值意義如下: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 更改內容

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

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


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

            s.append(str);
            s.append(str,1,3);//不解釋了 同前面的函數參數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’);//這個函數只能增加單個字符 對STL熟悉的理解起來很簡單

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

            26提取子串和字符串連接

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

            27輸入輸出操作

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

            28搜索與查找

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

             

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

            參考資料★ http://www.ok2002.com/cc/cc/v.asp?r=a2273562198117 
            重載括號和函數指針
            //C++中重載括號和C語言中的函數指針實現同樣的功能
            
            #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;//函數指針
            
            	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 閱讀(496) | 評論 (0)編輯 收藏

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

            template <class T>

            int getArrayLen(T& array)

            {

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

            }

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

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

            template <class T>

            int getArrayLen(T& array)

            {

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

            }

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

            【C語言】

            #include <stdio.h>

            #include <stdlib.h>

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

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

            int main()

            {

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

            int len;

            GET_ARRAY_LEN(a,len)

            //調用預定義的宏,取得數組a的長度,并將其存儲在變量len中

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

            system("pause");

            return 0;

            }

            【C++】

            #include <iostream>

            using namespace std;

            template <class T>

            int getArrayLen(T& array)

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

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

            }

            int main()

            {

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

            cout << getArrayLen(a) << endl;

            return 0;

            }


            C/C++中如何獲取數組的長度?

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

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

            好事:開發者掙錢了

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

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

            賺100萬美元不是難事

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

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

            蘋果優勢:API、單一的設備

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

            小開發者抱怨“不平等”

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

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

            高標準

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

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

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

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

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

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

            Google 電吉他 在線演示:

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

            Google電吉他源代碼

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

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

            Google 電吉他 譜子:

            網友們提供了好多譜子呢,這里挑幾首簡單的,先按下鍵盤圖標,然后用鍵盤彈,記得關閉輸入法。

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

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

            中文名: 英特爾® 高性能并行程序開發工具套件 2011
            英文名: Intel® Parallel Studio XE 2011
            資源格式: 壓縮包
            發行時間: 2010年9月
            制作發行: Intel®
            地區: 美國
            語言: 英文
            簡介: 
            Intel <wbr>Parallel <wbr>Studio <wbr>XE <wbr>2011
                2010年9月3日,北京 —— 今天,英特爾正式推出Intel® Parallel Studio XE 2011,該并行程序開發工具套件在C++編譯器、錯誤檢查與性能調試工具中增加了擴展的多線程庫和強大的多線程編程建議功能。
                作為功能卓越的、完整的性能優化套件,英特爾® Parallel Studio XE 2011幫助軟件開發者更輕松地提高串行和并行應用的性能和可靠性,以便充分利用最新的多核處理器。該版本添加了一套新的旨在充分利用并行處理的并行模塊——英特爾®并行構建模塊、可引導從串行到并行過渡的強大多線程編程輔助工具——英特爾® Parallel Advisor XE,以及包括全面支持Microsoft Visual Studio 2005、2008、2010開發環境在內的一系列強化功能。
            組件包括:
            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、正版授權文件下載地址:
            如果網盤過期,請將以下內容用記事本保存為.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 閱讀(3862) | 評論 (3)編輯 收藏

            C++加密算法庫 Botan 1.9.18 發布。

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

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



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

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

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

            僅列出標題
            共31頁: First 14 15 16 17 18 19 20 21 22 Last 
            午夜精品久久影院蜜桃| 99久久国产综合精品麻豆| 国产韩国精品一区二区三区久久| 久久久久国产一区二区三区| 99久久人妻无码精品系列蜜桃| 久久综合综合久久综合| 亚洲精品乱码久久久久久蜜桃不卡 | 久久国产视频网| 久久久久久午夜成人影院| 久久久久亚洲精品日久生情 | 国产69精品久久久久99| 91精品国产91热久久久久福利| 久久ww精品w免费人成| 久久这里只有精品久久| 国产免费福利体检区久久| 青青热久久国产久精品| 囯产精品久久久久久久久蜜桃| 久久精品青青草原伊人| 国产精品禁18久久久夂久| 国内精品久久久久久久影视麻豆| 久久婷婷人人澡人人| 亚洲成色WWW久久网站| 色综合色天天久久婷婷基地| 青春久久| 久久99国内精品自在现线| 国内精品久久久久久久久电影网 | 久久久91人妻无码精品蜜桃HD| 伊人久久精品影院| 奇米影视7777久久精品| 久久精品视屏| 狠狠色婷婷久久一区二区三区| 国内精品久久久久久不卡影院| 亚洲国产精品成人久久| 久久高潮一级毛片免费| 久久亚洲精精品中文字幕| 91久久精品电影| 精品久久人妻av中文字幕| 欧美日韩精品久久久免费观看| 99久久精品国内| 久久精品国产久精国产一老狼| 国产视频久久|