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

            看前面黑咚咚,待俺上前殺它個干干凈凈。。。

             

            2014年3月21日

            db2 818坑

            項目中有一個sqC產生的實體調用方法時,始終報818錯。刪掉bnd得編問題照舊。在同事的提示下--所有sqC文件名的前8個字符不能一樣--,找到重復文件重命名,刪掉BND文件,重編譯,搞定。

            posted @ 2014-03-21 10:35 山城,山 閱讀(376) | 評論 (0)編輯 收藏

            2013年5月18日

            在Win7上編譯 google V8

            一、環(huán)境
            編譯工具:VS2012 Express
            操作系統(tǒng):Win7旗艦版 64
            SVN客戶端
             
            二、下載
            1、創(chuàng)建目錄v8,用v8目錄,check out: http://v8.googlecode.com/svn/trunk/
            2、創(chuàng)建目錄v8\build\gyp,用gyp目錄,check out:http://gyp.googlecode.com/svn/trunk
            3、創(chuàng)建目錄v8\third_party\cygwin,用cygwin目錄,check out:http://src.chromium.org/svn/trunk/deps/third_party/cygwin
            4、創(chuàng)建目錄v8\third_party\python_26,用python_26目錄,check out:http://src.chromium.org/svn/trunk/tools/third_party/python_26
             
            注:上面的check out目錄同https://code.google.com/p/v8/wiki/BuildingWithGYP一文所述目錄不一致,文中所述目錄是無效的。
             
            三、編譯
            1、打開VS2012 開發(fā)人員命令提示。
            2、cd v8目錄。
            3、執(zhí)行命令:
               third_party\python_26\python.exe build\gyp_v8 -G msvs_version=2010
               系統(tǒng)顯示
               Updating projects from gyp files...
            4、在命令行中輸入:build\all.sln,回車。
            5、系統(tǒng)自動打開VS2012 IDE環(huán)境。
            6、在IDE環(huán)境項目菜單中,更新項目,升級項目文件。
            7、編譯。

            posted @ 2013-05-18 13:03 山城,山 閱讀(502) | 評論 (0)編輯 收藏

            2013年5月14日

            Linux守護程序類-daemon

            /////////////////////////////////////////////////////////////////////////////////////
            ///   daemon 測試類
            #include <unistd.h>
            #include <syslog.h>
            #include <stdlib.h>
            #include "daemon.h"

            class logger : public daemon
            {
            public:
                logger() : daemon("日志")
                {}

                void do_something()
                {
                    while(true)
                    {
                        syslog (LOG_NOTICE, "Writing to my Syslog");

                        sleep(5);
                    }
                }
            };

            int main(int argc, char *argv[]) {
                logger l;

                l.run();

                return 0;
            }

            ////////////////////////////////////////////////////////////////////////////
            //   .h

            #ifndef DAEMON_H
            #define DAEMON_H

            #include <string>

            class daemon{
            public:
                const std::string name;
            public:
                daemon(const char* nm);

                void run();

            private:
                static void fork_off_parent();
                static void set_child_context();
                virtual void open_log();
                virtual void do_something() =0;
                virtual void finish();
            private:
                daemon(const daemon&);
                daemon& operator=(const daemon&);
            };

            #endif // DAEMON_H

            /////////////////////////////////////////////////////////////////////////////////
            //  .cpp
            /*
             * cp from  
            http://shahmirj.com/blog/beginners-guide-to-creating-a-daemon-in-linux
             
            */

            #include "daemon.h"

            #include <sys/stat.h>
            #include <stdlib.h>
            #include <unistd.h>
            #include <syslog.h>

            daemon::daemon(const char *nm) : name(nm)
            {}

            void daemon::run()
            {
                fork_off_parent();
                set_child_context();
                open_log();
                do_something();
                finish();
            }

            void daemon::fork_off_parent()
            {
                //Fork the Parent Process
                pid_t pid = fork();

                if (pid < 0)
                {
                    exit(EXIT_FAILURE);
                }

                //We got a good pid, Close the Parent Process
                if (pid > 0)
                {
                    exit(EXIT_SUCCESS);
                }
            }

            void daemon::set_child_context()
            {
                //Change File Mask
                umask(0);

                //Create a new Signature Id for our child
                pid_t sid = setsid();
                if (sid < 0)
                {
                    exit(EXIT_FAILURE);
                }

                //Change Directory
                
            //If we cant find the directory we exit with failure.
                if ((chdir("/")) < 0)
                {
                    exit(EXIT_FAILURE);
                }

                //Close Standard File Descriptors
                close(STDIN_FILENO);
                close(STDOUT_FILENO);
                close(STDERR_FILENO);
            }

            void daemon::open_log()
            {
                //Set our Logging Mask and open the Log
                setlogmask(LOG_UPTO(LOG_NOTICE));
                openlog(name.c_str(), LOG_CONS | LOG_NDELAY | LOG_PERROR | LOG_PID, LOG_USER);

                syslog(LOG_INFO, "Entering Daemon");
            }

            void daemon::finish()
            {
                //Close the log
                closelog ();
            }

            posted @ 2013-05-14 14:01 山城,山 閱讀(320) | 評論 (0)編輯 收藏

            2013年5月10日

            Qt程序源碼中,中文常量字符串問題及翻譯家的使用

                在Windows7下使用Qt creator開發(fā)程序,想直接在源代碼中使用中文字符串常量,源碼是utf8的,保持utf8是便于遷移到linux,VC編譯器總是報錯,串中有換行符,怪異的是如果恰好串只有兩個中文字符時,一切都是那么美好,多了,VC編譯器就會讓你痛苦了。
                經過一番google,我總結了解決問題的原則:
                絕對不要在源碼中使用中文字符串常量。
                那要顯示的中文怎么做?用Qt Linguist.

            下面是方法:


            第一步:打開
            .pro文件,在最后面加入一行

            TRANSLATIONS = cn.ts

            可以自由命名右邊的.ts文件

             

            第二步:選擇菜單:工具/外部/Qt翻譯家/更新翻譯(lupdate)

            此時,系統(tǒng)將在.pro文件所在目錄生成cn.ts文件

             

            第三步:打開cn.ts文件,注意是用菜單:打開文件,用...。這種方式,在對話框中選擇

            Qt Linguist

             

            第四步:在Qt Linguist中,漢化找到的源代碼中的字符串常量。

             

            第五步:完成漢化后,保存并選擇【發(fā)布】。系統(tǒng)會在cn.ts文件所在目錄生成cn.qm文件。

            第六步:把漢文件文件添加到,項目資源中。打開.qrc文件,添加cn.qm文件

            /tr

                 cn.qm

             

             

            第七步:使用漢化結果. 在主窗口顯示前,應用實例創(chuàng)建后安裝翻譯器。

            QApplication a(argc, argv);

             

            QTranslator translator;

             

            translator.load(":tr/cn.qm");

            a.installTranslator(&translator);

             

            經驗:有些時候明明已經翻譯了,程序還是不生效,此時你可以選擇【清理項目】后再次構建,試一下。

            posted @ 2013-05-10 16:09 山城,山 閱讀(2373) | 評論 (0)編輯 收藏

            2012年5月7日

            Linux 平臺Eclipse與CMake結合的方法

             

            1、項目目錄規(guī)劃

             

                project_dir下建立build, cmake, src三個目錄。

              

            2、按照CMake要求,為項目編寫CMakeLists.txt文件。

             

            3、調用CMake命令為eclipse生成項目文件,我把這些命令寫成腳本來執(zhí)行:

                    make_project.sh

             

            #!/bin/sh

            mkdir -p build/release

            mkdir -p build/debug

            cmake -E chdir build/release cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=release ../../

            cmake -E chdir build/debug cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=debug ../../

             

            4、打開eclipse,選擇菜單:文件/ 導入/常規(guī)/現(xiàn)有項目到工作空間中.。在“導入”對話框中,在“選擇根目錄”項目中指定目錄為project_dir/build.

                eclipse會自動搜索到debug, release兩個目錄下的項目。

                點擊“完成”按鈕。eclipse將自動加入項目。

             

            5build項目。

             

            6、調試項目時,你需要在菜單:運行/調試配置 里新增配置信息,指定執(zhí)行文件的路徑。

            posted @ 2012-05-07 15:55 山城,山 閱讀(6684) | 評論 (0)編輯 收藏

            2012年2月28日

            一張圖

            圖本身沒有什么特別的,只是用來分析任務隊列,圖是用來推理的。

            posted @ 2012-02-28 17:20 山城,山 閱讀(222) | 評論 (0)編輯 收藏

            2010年9月30日

            wxFormBuildert雜記二則

            一、wxFormBuilder選擇utf8生成的cpp代碼,是無代碼簽名的,VS2008 express編譯過程中可能會出現(xiàn)字符串錯誤。
                     解決辦法是:打開文件菜單,選擇保存高級選項,在“編碼”中選擇“unicode - 代碼頁1200”,確定后,重新編譯。
            二、wxFormBuilder制作wxFlexGridSizer布局時,其默認rows,cols都是2,這個值不會自動變化,因此,你添加了超個2*2個窗體后,生成的cpp代碼可以順利編譯,但運行過程會報超過2*2的錯。
                     解決辦法:調整rows, cols值。


            更正:方法一,更簡單的處理是在項目屬性中勾選c++ properties/ use_microsoft_bom 設置,這樣生成的cpp文件,VS2008 Express 無礙編譯。

            posted @ 2010-09-30 08:29 山城,山 閱讀(419) | 評論 (0)編輯 收藏

            2010年7月29日

            sqlite簡明使用

            跑題
            據(jù)說Oracle Berkeley DB"很好",就去試用一下,但是,它,很不給我面子,在put了半天之后,我想get一下寫入的東西,運行正常,但沒有結果返回,看了幾遍幫助,copy文檔的代碼,也是這個結果,就很是郁悶了。沒有太多的時間去追究問題,還好世上還有一些“美好”的東西。sqlite,也是嵌入數(shù)據(jù)庫,據(jù)說它快但是比Oracle Berkeley DB“遜色”,但Oracle Berkeley DB 11g的sql引擎是用sqlite的,最重要的它還是免費的。
            有興趣了解的朋友可以去這里看一下。
            http://www.bdbchina.com/2010/03/oracle-berkeley-db-%E6%94%AF%E6%8C%81sql%E5%95%A6%EF%BC%81/
            BDB中國研發(fā)團隊的博客,講了一些與sqlite的關系。這里摘錄一下:

            “Oracle Berkeley DB引入了SQLite的SQL層:包括用戶接口(sqlite3(), ODBC, JDBC等)和SQL語言處理層(Tokenizer、Parser及Generator),而底層引擎(虛擬機)則使用了BDB的存儲引擎。從而,將原來SQLite基于數(shù)據(jù)庫級別的并發(fā)提升一個級別 - 至BDB的基于頁(Page)級別的并發(fā),并可以利用BDB的更好的內存管理、數(shù)據(jù)和事務恢復功能、更多的擴展(如Berkeley DB的db_hotbackup、db_stat、db_archive等一系列命令行工具)。”


            Berkeley DB SQL和SQLite使用上的區(qū)別

            a) 對于用戶和開發(fā)人員來說,這兩個產品是沒有區(qū)別的。它們在SQL語法、API、命令行交互、PRAGAMAs 等方面都是一致的。我認為,用戶可以體驗的顯著區(qū)別有可能是性能和并發(fā)了 - 由于SQLite提供的是數(shù)據(jù)庫級別的鎖,而Berkeley DB SQL是頁(Page)級別的鎖,因此后者在絕大多數(shù)測試中都會快很多 (如Insert, Update, Delete, 并發(fā)操作等)。但是,由于DBSQL提供的細粒度鎖的機制,它又會帶來一些額外的開銷,一些極端的測試用例下會比SQLite慢上少許(但不明顯)。并且對于這些極端測試的案例,我們一直在進行性能優(yōu)化。

            b) 對于已有的SQLite應用程序和工具而言,由于這兩者在調用接口都是一致的,因而都可以無縫支持。

            c) 對于DBA人員來說,除了可以繼續(xù)使用SQLite原來的管理工具,您還可以使用BDB提供的db_hotbackup、db_stat、db_archive等一系列命令行工具來備份,監(jiān)控,升級等。另外,您還可以聯(lián)系Oracle尋求支持。

            總體而言,我們有充分理由相信Oracle Berkeley DB SQL將會比SQLite更快,更穩(wěn)定。同時,我們也將會提供更好的支持服務。


            正題
            使用http://sqlitewrapper.kompex-online.com/ Kompex SQLite Wrapper 呵呵,超好用

            完了

            posted @ 2010-07-29 17:32 山城,山 閱讀(705) | 評論 (0)編輯 收藏

            wcsftime,_wcsftime_l之困

            本想用wcsftime,_wcsftime_l來簡化時間格式化操作,顯示中文時間,于是就這樣整:
                wchar_t buf[128];
                wcsftime(buf, 128, L"%y年%m月%d ...." ...)
            誰知道執(zhí)行成功,但buf里邊內容為空,注意不是"\0",是什么也沒有返回. 東找西查,可能是local相關問題。
            好,我設置  "CHS",OK,(調試。。),再F5 , NND,sqlite又報一個互斥量錯誤,額的娘喲!消滅一個問題,又引入一個新問題。。。立即癡呆3分鐘:-(。
               好了,好了,惹來起,躲得起,我可不會去探尋為什么sqlite會不給面子,不然這一天又過去了。
            還好,有數(shù)據(jù),毛老人家講“自力更生,豐衣足食”,wcsprintf一樣的可用。。。

            posted @ 2010-07-29 17:27 山城,山 閱讀(1070) | 評論 (0)編輯 收藏

            2010年6月4日

            當前路徑 !=程序路徑 --我吃了它的苦頭

                第一次,我在寫一個MFC程序,用CFile打開文件時,我認為當前路徑==程序路徑,文件名沒有采用絕對路徑。在程序執(zhí)行過程中,沒有打開任何文件對話框時,我的想當然是對的,可是只要彈出一個文件對話后,我就跌入了沼澤,耗時三天,才發(fā)現(xiàn)文件對話框是要更改當前路徑的。
                每二次,我在寫一個服務時,一個函數(shù)里邊要打開讀取一個文件,在非服務程序的執(zhí)行過程中,函數(shù)表現(xiàn)正常。當我轉換成服務,在主函中調用它后,在服務啟動運行期間,它運行不正常。我又認為當前路徑==程序路徑,文件打開失敗,調試了一下午才找出原因。

            “同一個錯誤,不能犯兩次”

            posted @ 2010-06-04 23:17 山城,山 閱讀(516) | 評論 (1)編輯 收藏

            僅列出標題  下一頁

            導航

            統(tǒng)計

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            欧美一区二区精品久久| 精品综合久久久久久888蜜芽| 国产激情久久久久影院| 国产综合成人久久大片91| 一个色综合久久| 婷婷久久久亚洲欧洲日产国码AV| 久久久精品人妻一区二区三区蜜桃| 久久久久久无码Av成人影院| 久久婷婷五月综合色99啪ak| 久久久久成人精品无码中文字幕 | 久久99国产精品99久久| 久久青草国产精品一区| 狠狠色狠狠色综合久久 | 成人资源影音先锋久久资源网| 久久本道综合久久伊人| 无码国产69精品久久久久网站| 久久亚洲国产精品五月天婷| 国内精品久久久久久99蜜桃| 中文字幕精品无码久久久久久3D日动漫 | 久久99久久成人免费播放| 伊人久久大香线蕉综合Av| 日日狠狠久久偷偷色综合96蜜桃| 99久久国语露脸精品国产| 久久久无码精品亚洲日韩京东传媒 | 久久精品一区二区三区AV| 久久av免费天堂小草播放| 久久亚洲精品视频| 97久久国产亚洲精品超碰热| 亚洲国产精品无码久久SM| 亚洲日本久久久午夜精品| 美女久久久久久| 综合久久一区二区三区 | 国产毛片久久久久久国产毛片| 69国产成人综合久久精品| 亚洲中文字幕久久精品无码APP| 久久久久国色AV免费观看| 久久www免费人成看国产片| 国产成人AV综合久久| 九九久久精品无码专区| 久久午夜电影网| 精品久久久久久久中文字幕 |