• <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>

            專職C++

            不能停止的腳步

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(28)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            #

            最近在搞一個(gè)項(xiàng)目,需要用的curl。因?yàn)槭褂脀indows下面開(kāi)發(fā)比較習(xí)慣,于是用它了。然并不是一帆風(fēng)順的。
            先去官網(wǎng)下載curl。我先下下載了libcurl-7.19.3_win32_ssl_msvc.zip,然后提示"應(yīng)用程序無(wú)法正常啟動(dòng)(0xc000007)",反復(fù)測(cè)試沒(méi)用(本人是win7 64位環(huán)境),它自帶的也是這樣。看到也有人說(shuō)這個(gè)問(wèn)題,好像是64位環(huán)境的問(wèn)題,于是就重新搞一下。
            首先到官網(wǎng)下載64位的:http://curl.haxx.se/download.html,在這里選擇Use the curl Download Wizard!,然后按照要求,下載了一個(gè)64位版本。下載后的文件名是curl-7.34.0-devel-mingw64.7z。然后解壓就可以了。
            vs工程也要加一個(gè),選擇工程樹(shù)具體的某個(gè)工程,點(diǎn)該工程的屬性,終出下面的對(duì)話框后,選擇配置管理器(圖中所示)


            設(shè)置先成后,選擇相應(yīng)的工程配置方案,就可以了。


            下步就是如何加到工程,在下載的libcurl中,是用mingw編譯了,沒(méi)有的lib文件,但是他提供了def文件,我們可以用它來(lái)生成lib。在curl-7.34.0-devel-mingw64\lib64里面。
            在windows的開(kāi)始菜單找到visual studio 2013,選擇visual studio tools,會(huì)打開(kāi)一個(gè)目錄,然后選擇“VS2013 x64 本機(jī)工具命令提示”進(jìn)入命令提示符下面。
            進(jìn)入到libcurl解壓的目錄,在lib64目錄下面。然后輸入下面兩個(gè)命令,就可以得到兩個(gè)lib了
            lib /DEF:libcurl.def /MACHINE:X64
            lib /DEF:libssh2.def /MACHINE:X64
            把生成的libcurl.lib和libssh2.lib放到工程可以找到的lib目錄,再把curl-7.34.0-devel-mingw64\bin下的所有dll復(fù)制到程序生成.exe的目錄,這樣,就可以在工程中使用curl了。
            下面的博客提供了一個(gè)curl的使用,可以直接用,并編譯通過(guò)。http://dewei.iteye.com/blog/1572016,唯一不同的指定lib
            #include "curl/curl.h"  
            #pragma comment(lib, "libcurl.lib")  

            posted @ 2014-04-15 17:03 冬瓜 閱讀(9670) | 評(píng)論 (2)編輯 收藏

            平時(shí)用dynamic_cast,但是一直沒(méi)有考慮過(guò)性能。但是性能怎么樣,還真沒(méi)想過(guò)。下測(cè)試就是一段測(cè)試程序,在linux下跑。
            循環(huán)2億次,用dynamic_cast<XTestEx *>()的時(shí)候是2.39978秒,用(XTestEx *)直接轉(zhuǎn)的時(shí)間是0.723503秒。如果加上附加代碼帶來(lái)的誤差。dynamic_cast<XTestEx *>()費(fèi)時(shí)是(XTestEx *)的近4倍.但總的來(lái)說(shuō),性能影響不大!
            #include <iostream>
            #include<sys/time.h>

            using namespace std;

            class XTestBase
            {
            public:
                virtual ~XTestBase(){}
                virtual int getValue() = 0;
                
            };

            class XTestEx : public XTestBase
            {
            public:
                virtual ~XTestEx(){}
                virtual int getValue() 
                {
                    return 100;
                }
            };

            int main(int argc, char * argv[])
            {
                struct timeval st1,st2;

                XTestBase * pB = new XTestEx();
                int iC = 0;
                gettimeofday(&st1, NULL);
                for(int i = 0; i < 200000000; i++)
                {
                    XTestEx * p = dynamic_cast<XTestEx *>(pB);
                    iC += p->getValue();
                }
                gettimeofday(&st2, NULL);
                long long diff  = 1000000ll * (st2.tv_sec-st1.tv_sec)+ st2.tv_usec-st1.tv_usec;
                cout<<"diff:"<<(diff/1000000.0)<<endl;

                gettimeofday(&st1, NULL);
                for(int i = 0; i < 200000000; i++)
                {
                    XTestEx * p = (XTestEx *)pB;
                    iC += p->getValue();
                }
                gettimeofday(&st2, NULL);
                diff  = 1000000ll * (st2.tv_sec-st1.tv_sec)+ st2.tv_usec-st1.tv_usec;
                cout<<"diff:"<<(diff/1000000.0)<<endl;

                return 0;
            }
            posted @ 2014-04-02 11:46 冬瓜 閱讀(1929) | 評(píng)論 (1)編輯 收藏

                 摘要: 第一:沒(méi)有美術(shù),只好自己用PS。先用PS在原來(lái)的4個(gè)方向上,做一個(gè)履帶差異的4方向坦克。
            第二:用SpritePacker打包成tankbase.plist。然后用CCSpriteFrameCache加載到內(nèi)存中。
            CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("basetank.plist");  閱讀全文
            posted @ 2014-03-25 00:05 冬瓜 閱讀(1409) | 評(píng)論 (1)編輯 收藏

            (基于cocos2dx 2.2.2)
            如果很多圖片很小或常用,可以使用CCSpriteFrameCache,來(lái)避免資源被反復(fù)加載。 
            (注:對(duì)于plist,我這里使用的是一個(gè)免費(fèi)的工具,SpritePacker,http://spritepacker.kernys.net)

            如:CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("basetank.plist");
            <?xml version="1.0" encoding="UTF-8"?>
            <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
            <plist version="1.0">
            <dict>
                <key>frames</key>
                <dict>
                    <key>basetank_down.png</key>
                    <dict>
                        <key>frame</key>
                        <string>{{0,0},{26,26}}</string>
                        <key>offset</key>
                        <string>{0,0}</string>
                        <key>rotated</key>
                        <false/>
                        <key>sourceColorRect</key>
                        <string>{{3,3},{26,26}}</string>
                        <key>sourceSize</key>
                        <string>{32,32}</string>
                    </dict>
                    <key>basetank_left.png</key>
                    <dict>
                        <key>frame</key>
                        <string>{{0,27},{26,26}}</string>
                        <key>offset</key>
                        <string>{0,0}</string>
                        <key>rotated</key>
                        <false/>
                        <key>sourceColorRect</key>
                        <string>{{3,3},{26,26}}</string>
                        <key>sourceSize</key>
                        <string>{32,32}</string>
                    </dict>
                    <key>basetank_right.png</key>
                    <dict>
                        <key>frame</key>
                        <string>{{0,54},{26,26}}</string>
                        <key>offset</key>
                        <string>{0,0}</string>
                        <key>rotated</key>
                        <false/>
                        <key>sourceColorRect</key>
                        <string>{{3,3},{26,26}}</string>
                        <key>sourceSize</key>
                        <string>{32,32}</string>
                    </dict>
                    <key>basetank_up.png</key>
                    <dict>
                        <key>frame</key>
                        <string>{{0,81},{26,26}}</string>
                        <key>offset</key>
                        <string>{0,0}</string>
                        <key>rotated</key>
                        <false/>
                        <key>sourceColorRect</key>
                        <string>{{3,3},{26,26}}</string>
                        <key>sourceSize</key>
                        <string>{32,32}</string>
                    </dict>
                </dict>
                <key>metadata</key>
                <dict>
                    <key>format</key>
                    <integer>2</integer>
                    <key>realTextureFileName</key>
                    <string>basetank.png</string>
                    <key>size</key>
                    <string>{32,128}</string>
                    <key>smartupdate</key>
                    <string>{None}</string>
                    <key>textureFileName</key>
                    <string>basetank.png</string>
                </dict>
            </dict>
            </plist>
            這樣,就可以完成一組圖片資源加載。
                        CCSprite * p1Pic = CCSprite::createWithSpriteFrameName(“basetank_up.png”);
                        p1Pic->setPosition(GetPosition(pPlayerLayer, "Player1"));
                        p1Pic->setAnchorPoint(ccp(0, 0));
                        this->addChild(p1Pic);
            如需更換圖片,
            p1Pic
            ->setDisplayFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("basetank_right.png"));
            這里的作用相當(dāng)于是把tank向右轉(zhuǎn)
            posted @ 2014-03-24 00:08 冬瓜 閱讀(1961) | 評(píng)論 (0)編輯 收藏

            (基于cocos2dx 2.2.2)現(xiàn)在下載的cygwin自帶的gcc編譯器的版本是4.8.x了,也就是全面支持c++0x11版本了。(我用的vs2013也已經(jīng)大部分支持C++0x11的版本)。但是默認(rèn)情況下,gcc是不支持的,需要在編譯選項(xiàng)設(shè)置開(kāi)關(guān)。
            我們用文本編輯器打開(kāi)proj.android\jni\Application.mk,并增加 -std=c++0x,這樣就可以編譯c++0x11的C++代碼了。
            APP_STL := gnustl_static
            APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1 -std=c++0x
            posted @ 2014-03-16 23:35 冬瓜 閱讀(1457) | 評(píng)論 (0)編輯 收藏

                 摘要: 在手機(jī)上調(diào)試,不能所見(jiàn)所得日志,這個(gè)是一個(gè)比較麻煩的事,于是想到了,用多行文本做日志。
            下面是日志的代碼。從CCLabelTTF派生。這里主要提供了VLog和Log兩個(gè)日志輸出函數(shù)。
            定義如下
            void VLog(const char * paramFormat, va_list param_argptr);
            void Log(const char * paramFormat, ...);
            其中VLog主要應(yīng)用于已經(jīng)有va_list的情況下。  閱讀全文
            posted @ 2014-03-16 23:15 冬瓜 閱讀(4043) | 評(píng)論 (0)編輯 收藏

                 摘要: 游戲周迭代開(kāi)發(fā)


            游戲上線后,可以進(jìn)行周迭代模式。即每周開(kāi)發(fā)新功能和修復(fù)bug,并每周估計(jì)時(shí)間停服更新。如果無(wú)版本更新,也要進(jìn)行例行停服維護(hù)。  閱讀全文
            posted @ 2014-02-17 21:01 冬瓜 閱讀(1512) | 評(píng)論 (0)編輯 收藏

                 摘要: http://www.blogjava.net/kuuyee/archive/2013/04/21/398171.html  閱讀全文
            posted @ 2014-02-12 09:52 冬瓜 閱讀(398) | 評(píng)論 (0)編輯 收藏

                 摘要: 原文地址:http://www.blogjava.net/kuuyee/archive/2011/04/25/348985.html

            今天Jenkins(以前叫Hudson)CI服務(wù)器突然掛了,排查了半天發(fā)現(xiàn)磁盤已經(jīng)100%,真后悔當(dāng)初沒(méi)把磁盤設(shè)大點(diǎn),其實(shí)可以用LVM調(diào)整一下,但是心里還是沒(méi)底,怕把數(shù)據(jù)都丟失了,決定以后再調(diào)整磁盤分配。目前先吧Jenkins下沒(méi)用的項(xiàng)目都干掉,可以騰出很多空間。

            我們都知道使用du命令可以查看目錄,例如查看/home/kuuyee目錄占用磁盤空間大小可以使用下面的命令:  閱讀全文
            posted @ 2014-02-12 09:48 冬瓜 閱讀(581) | 評(píng)論 (0)編輯 收藏

                 摘要: 在游戲開(kāi)發(fā)過(guò)程中,游戲配置更新是很常的事情。其中一個(gè)主要的方法,是用excel來(lái)進(jìn)行游戲配表。然后導(dǎo)出,可以導(dǎo)出前臺(tái)和后臺(tái)的配置,這樣策劃就不用針對(duì)前后臺(tái),分別給配置了。在這里,python就有大作用了。通過(guò)以前的積累,這里給出一個(gè)目前我這里使用的最新的,希望能給大家有所幫助。
            我這里配置,支持.conf(ini格式),.csv,.jsn和.mall或.js(json格式),.cfg(我這里定義的一種數(shù)據(jù)格式和對(duì)應(yīng)的ActionScript代碼),還有.sql和.key格式。并支持最新的excel 2013的表格。(這個(gè)是由第三方庫(kù)提供的)。
              閱讀全文
            posted @ 2014-02-08 17:19 冬瓜 閱讀(2924) | 評(píng)論 (1)編輯 收藏

            僅列出標(biāo)題
            共17頁(yè): First 6 7 8 9 10 11 12 13 14 Last 
            国产精品免费久久久久电影网| 伊人久久精品无码av一区| 国产精品久久亚洲不卡动漫| 狠狠色伊人久久精品综合网| 欧美黑人激情性久久| 欧美色综合久久久久久| 青青青青久久精品国产| 久久久久久午夜成人影院| 综合久久给合久久狠狠狠97色| 国产亚州精品女人久久久久久| 亚洲国产成人精品女人久久久 | 国产精品伊人久久伊人电影 | 久久香蕉国产线看观看精品yw| 亚洲国产精品久久久久| 青青草原综合久久| 久久精品免费全国观看国产| 久久伊人五月天论坛| 久久亚洲av无码精品浪潮| 久久精品国产99久久久| 亚洲婷婷国产精品电影人久久| 午夜不卡888久久| 国产亚洲欧美成人久久片| 国产一级持黄大片99久久| 一本一本久久A久久综合精品| 久久久噜噜噜久久| 国内精品免费久久影院| 久久精品男人影院| 99久久免费国产精品热| 久久精品无码专区免费东京热 | 国产L精品国产亚洲区久久| 久久天堂AV综合合色蜜桃网 | 日韩精品久久久肉伦网站 | 亚洲αv久久久噜噜噜噜噜| 久久久国产乱子伦精品作者| 久久久久久久精品妇女99| 72种姿势欧美久久久久大黄蕉| 亚洲色大成网站www久久九| 一本一本久久aa综合精品 | 久久婷婷五月综合97色直播| 久久精品国产只有精品2020| 日本精品久久久久中文字幕|