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

            JACKY_ZZ[貓貓愛吃魚]

            春風拂面兩頰紅,秋葉灑地一片金。 夏荷搖曳一身輕,冬雪覆蓋大地銀。
            posts - 30, comments - 123, trackbacks - 0, articles - 0

                 摘要: stdafx.h  1 #pragma once 2  3 #include "targetver.h" 4  5 #include <stdio.h> 6 #include <tchar.h> 7&nb...  閱讀全文

            posted @ 2010-12-07 11:02 jacky_zz 閱讀(417) | 評論 (0)編輯 收藏

                 摘要:   1#define MAX_LOADSTRING 100  2#define WM_BASSPLAY    (WM_USER + 100)  3#define WM_BASSQUIT (WM_USER + 1...  閱讀全文

            posted @ 2010-11-19 16:53 jacky_zz| 編輯 收藏

                 摘要: 這是一個基于Ffmpeg解碼器的簡單播放器,怎么在Windows上編譯Ffmpeg可以在網上找到很多,開發環境是Windows XP SP3+VS2008,其中DirectSound控制單元來自jdk1.6源碼。我的Ffmpeg編譯環境是MSYS+MinGW,GCC版本為4.4.0,采取靜態無DEBUG方式編譯,得到libavcodec.a、libavformat.a和libavutil.a三個靜...  閱讀全文

            posted @ 2010-04-12 10:43 jacky_zz 閱讀(11387) | 評論 (19)編輯 收藏

                 摘要: 在Windows XP上安裝VMware6.5,下載最新的Ubuntu 9.10桌面版安裝到虛擬機上。系統安裝完成后,設置網絡,從http://ffmpeg.org上下載最新的源碼版本,以root身份解壓到根目錄上,得到目錄ffmpeg-0.5,運行以下命令:#cd ffmpeg-0.5#./configure --prefix=/usr --enable-shared --disable-sta...  閱讀全文

            posted @ 2009-12-07 16:24 jacky_zz 閱讀(1794) | 評論 (8)編輯 收藏

                 摘要: 此代碼在vs2008下編譯,基于最新的ffmpeg版本(svn下載),搭建MSYS+MinGW編譯環境編譯,如何搭建,在google上能搜索到。 源碼可在此下載。但除了aac和ogg格式播放出錯,其余格式正常,不知為何,有ffmpeg開發經驗的朋友請給予幫助,謝謝。代碼貼于下方。   1#include <stdio.h>  2#in...  閱讀全文

            posted @ 2009-11-24 17:44 jacky_zz 閱讀(4937) | 評論 (13)編輯 收藏

            近期硬盤分區表損壞,所有數據全部丟失!!!包括AudioPlayer的源碼,現在僅存的源碼在www.codeproject.com上可以下載,感謝網友一直以來對此程序的關心,本打算公開,現在卻因為硬盤問題而無法實現,深表歉意。

            jacky_zz
            2009-09-18

            posted @ 2009-09-18 08:22 jacky_zz 閱讀(780) | 評論 (11)編輯 收藏

            寫這個文章一是為了體驗OCI,二是為了記錄一下,三是為了體驗GCC,^_^。
            OCI是何許?OCI(Oracle Call Interface),開發人員可以通過OCI與Oracle服務進行交互。多的不說了,如想對OCI詳細了解,上google查查,下面進入正題。

            1、開發環境搭建
            (1)下載Oracle Database 10g Express Edition,從http://www.oracle.com/上下載;
            (2)下載GCC(MinGW),從http://www.mingw.org/上下載最新的發布版本,我下載的是GCC 4.4.0。添加系統環境變量GCC_HOME=D:\GCC,PATH=%PATH%;%GCC_HOME%\bin;
            (3)下載Oracle Instant Client,從http://www.oracle.com/上下載最新版本的Instant Client,我下載的是Instant Client 11.1.0.7.0。添加環境變量TNS_ADMIN=D:\instantclient,PATH=%PATH%;%TNS_ADMIN%;
            (4)配置Oracle Instant Client,在Instant Client目錄下建立文件tnsnames.ora,內容如下:
            XE =
              (DESCRIPTION =
                (ADDRESS_LIST =
                  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.170)(PORT = 1521))
                )
                (CONNECT_DATA =
                  (SERVICE_NAME = XE)
                )
            )

            說明:XE代表數據庫名,HOST代表提供服務的主機IP地址,SERVICE_NAME代表實例名
            (5)下載OCILib,從http://orclib.sourceforge.net/上下載,我下載的版本是OCILib 3.3.0,打開壓縮包,將include下的文件復制到d:\gcc\include下,將lib目錄下的*.a文件復制到d:\gcc\lib下;
            至此,開發環境已搭建完成。

            2、代碼編寫
            #include <stdio.h>
            #include <stdlib.h>
            #include <ocilib.h>

            int main(int argc, char* argv[])
            {
                OCI_Connection* conn = NULL;
                OCI_Statement* stmt = NULL;
                OCI_Resultset* rs = NULL;

                int ret = OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT);
                if (!ret)
                {
                    printf("Error\n");
                    system("pause");
                    return EXIT_FAILURE;
                }

                conn = OCI_ConnectionCreate("XE", "lixin", "lixin", OCI_SESSION_DEFAULT);
                stmt = OCI_StatementCreate(conn);

                OCI_ExecuteStmt(stmt, "select id,dqzzl from rlcz");
                rs = OCI_GetResultset(stmt);

                while (OCI_FetchNext(rs))
                {
                    printf("%s %8.2f\n", OCI_GetString(rs, 1), OCI_GetDouble(rs, 2));
                }

                OCI_Cleanup();
                system("pause");

                return EXIT_SUCCESS;
            }

            3、編譯代碼
            gcc -s -DOCI_CHARSET_ANSI -DOCI_API=__stdcall -DOCI_IMPORT_RUNTIME main.c -o main.exe -lociliba
            運行后,生成目標代碼。

            4、運行結果(與PL/SQL查詢結果比較)

                                       圖1 PL/SQL查詢結果

                                      圖2 OCI查詢結果

            5、總結
            訪問Oracle有兩種方式,thin和oci,在java里可以通過 thin或oci驅動來訪問Oracle,在java里普遍使用的是thin模式,因為oci需要有本地代碼的支持(在Windows下是 dll,Linux下是so),不利于跨平臺代碼的編寫。這就是為什么oci用的少的緣故。但是thin模式訪問Oracle在性能上是不如oci的,這就是為什么oci也同時存在的緣故。本文通過對oci的初探體驗了oci在性能上帶來的快捷。

            源碼下載

            posted @ 2009-07-30 15:39 jacky_zz 閱讀(2050) | 評論 (3)編輯 收藏


            開發了有一段時間了,說來還真是很長時間了。有興趣可以參考我在Codeproject上發布的三篇文章。
            http://www.codeproject.com/KB/audio-video/DSound_Spectrum.aspx
            http://www.codeproject.com/KB/audio-video/DirectSound_Spectrum2.aspx
            http://www.codeproject.com/KB/audio-video/DSound_Spectrum3.aspx
            以上三篇文章或多或少都存在一些問題,其中最普遍的問題是頻譜顯示的并不是實時(real-time)的。但截圖顯示的這個版本是準確的了(我認為)。源碼還在整理中,整理完畢后即發布到Codeproject上。

            實現思路:
            1、MP3解碼由libmad開源解碼庫完成;
            2、兩個線程:播放線程,頻譜線程,其中頻譜線程使用的數據來自播放線程;
            3、播放線程總是通過解碼器獲取4608字節數據,為什么要這個數字?這個是看了網上的相關文檔和自己不斷的測試得到的,這個數據可以有效的降低因為聲卡回放引入的延時,少于這個數字將播放不正常;
            4、頻譜線程根據當前播放的時間獲取到正在播放的PCM數據,使用FFT計算后繪圖顯示。

            版本歷史:
            2009-02-08:支持拖拽,mp3,wma,ogg,wav支持,支持拖拽音頻文件到exe啟動播放 
            2009-02-09:BUG修復:在單CPU上出現線程死鎖,在雙CPU上未出現
            2009-03-27:支持APE格式
            2009-03-30:支持FLAC格式 
            2009-05-04:添加暫停、停止操作,結束一直以來朋友們提出沒有暫停和停止操作的歷史
            2009-05-05:為播放、暫停、停止,退出操作添加系統熱鍵,分別為Ctrl+1、Ctrl+2、Ctrl+3、Ctrl+4
            2009-05-06:為播放、暫停、停止,退出操作添加系統熱鍵, 分別為A、D、S、X,即按A或Ctrl+1為播放,D或Ctrl+2為暫停,S或Ctrl+3為停止、X或Ctrl+4為退出

            最新版本下載
            =======================================================
            it's a long story to tell about this article, if you are interest in this project, please visit those three articles were posted on codeproject.
            http://www.codeproject.com/KB/audio-video/DSound_Spectrum.aspx
            http://www.codeproject.com/KB/audio-video/DirectSound_Spectrum2.aspx
            http://www.codeproject.com/KB/audio-video/DSound_Spectrum3.aspx
            those three atticles have some bugs, and the main problem is spectrum display what is not real-time. but this version is real-time(i think).
            the latest version support mp3, wma, wav, ogg, ape, flac now,  and you can download it with this link: AudioPlayer_20090506065.zip

            posted @ 2009-02-04 09:22 jacky_zz 閱讀(13474) | 評論 (54)編輯 收藏

                 摘要: 這里將再次對UNION進行一些小小的探究,思路來源于MFC中消息函數執行過程中的一些疑問。union初探初步闡述了union與struct的一些區別,以及相應的使用方法,這里將以此為基礎,以類的方式進一步對union的運用方法進行一點說明。  閱讀全文

            posted @ 2007-08-07 16:45 jacky_zz 閱讀(392) | 評論 (2)編輯 收藏

                 摘要: 這幾天在看MFC深入淺出,看到一個union的定義,代碼如下:   1union MessageMapFunctions  2{  3    AFX_PMSG pfn;   // generic member func...  閱讀全文

            posted @ 2007-08-06 17:31 jacky_zz 閱讀(1227) | 評論 (4)編輯 收藏

            僅列出標題
            共3頁: 1 2 3 
            精品久久综合1区2区3区激情| 精品久久久无码人妻中文字幕豆芽| 久久香蕉国产线看观看99| 国产精品久久国产精品99盘| 欧美亚洲国产精品久久蜜芽| 久久AAAA片一区二区| 久久精品国产亚洲AV影院| 国内精品久久人妻互换| 久久夜色撩人精品国产| 久久久久成人精品无码中文字幕| 中文精品久久久久国产网址| 久久久久久久波多野结衣高潮| 亚洲国产成人久久综合碰碰动漫3d| 亚洲人AV永久一区二区三区久久 | 久久精品二区| 亚洲中文久久精品无码ww16 | 久久综合成人网| 国内精品伊人久久久久AV影院| 久久久久18| 99久久99久久精品国产片| 婷婷综合久久中文字幕蜜桃三电影| 国产精品久久久久久久午夜片| 久久精品一本到99热免费| 亚洲精品tv久久久久| 国产精品美女久久久免费| 韩国免费A级毛片久久| 97精品依人久久久大香线蕉97| 久久99精品九九九久久婷婷| 精品国产一区二区三区久久| 亚洲伊人久久大香线蕉综合图片| 久久有码中文字幕| 久久精品国产精品亚洲下载| 91久久精品电影| 狠狠色丁香婷婷综合久久来来去| 久久亚洲精品中文字幕三区| 精品少妇人妻av无码久久| 久久久久久国产精品免费无码 | 久久99免费视频| 99国内精品久久久久久久| 久久精品无码一区二区三区| 久久91精品国产91久久小草|