<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

    #

    declare c number(4); begin for k in 1..13 loop c := 590+k; dbms_job.submit(c, 'ODS_UTL_DIFF.DIFF('||k||',2,''0,21'');', sysdate, 'trunc(sysdate)+21/24+7'); commit; end loop; end;
    posted @ 2008-12-01 15:07 ivaneeo 閱讀(337) | 評(píng)論 (0)編輯 收藏

    qt4內(nèi)置有sqlite插件,可以直接使用sqlite.但是發(fā)現(xiàn)插入中文時(shí)會(huì)有亂碼問題。
    以windows為例,qt4內(nèi)置編碼為system(GBK).而sqlite內(nèi)部編碼為unicode.
    如果插入中文首先要轉(zhuǎn)換為unicode.而從數(shù)據(jù)庫讀取時(shí)則不需要,因?yàn)閝t會(huì)自動(dòng)偵測編碼,
    實(shí)例代碼:
        //插入記錄
        QSqlQuery query;
        QByteArray sql = "insert into person values(1, 'hello', '你好!')";
        QTextCodec *codec = QTextCodec::codecForName("GBK");
        QString string = codec->toUnicode(sql);
        query.exec(string);
        //讀入記錄
        QSqlQuery query("select * from person");
        while (query.next()) {
           QString string = query.value(2).toString();;
           QMessageBox::information(0, "infa", string, QMessageBox::Ok);
        }


    posted @ 2007-10-20 23:03 ivaneeo 閱讀(2311) | 評(píng)論 (2)編輯 收藏

    1.
        Transformation代表Informatica Server對(duì)數(shù)據(jù)的操作。
        Transformation分類:Active和Passive
           輸入跟輸出的記錄數(shù)會(huì)發(fā)生改變
           不能re-linked到另一個(gè)data stream
           例子:Aggregator, Filter, Joiner, Normalizer, Rank, Update Strategy, Advanced External Procedure,
            ERP Source Qualifier and Source Qualifier, Application Source Qualifier, Router, Sorter    
        Passive transformations
           輸入跟輸出的記錄數(shù)一樣
           可以re-linked到另一個(gè)data stream
            例子:Expression, External Procedure, Lookup, Sequence Generator  Stored Procedure, Input,
    Output, XML Source Qualifier
          Transformations分類 : connected 和 unconnected,unconnected transformation在其他的組件中被調(diào)用并且有返回值。

    posted @ 2007-04-19 15:43 ivaneeo 閱讀(691) | 評(píng)論 (0)編輯 收藏

    ETL的簡介:
        ETL即數(shù)據(jù)抽取(Extract)、轉(zhuǎn)換(Transform)、裝載(Load)的過程,它是構(gòu)建數(shù)據(jù)倉庫的重要環(huán)節(jié)
    1、 數(shù)據(jù)清洗

    數(shù)據(jù)清洗的任務(wù)是過濾那些不符合要求的數(shù)據(jù),將過濾的結(jié)果交給業(yè)務(wù)主管部門,確認(rèn)是否過濾掉還是由業(yè)務(wù)單位修正之后再進(jìn)行抽取。不符合要求的數(shù)據(jù)主要是有不完整的數(shù)據(jù)、錯(cuò)誤的數(shù)據(jù)、重復(fù)的數(shù)據(jù)三大類。

      (1)不完整的數(shù)據(jù):這一類數(shù)據(jù)主要是一些應(yīng)該有的信息缺失,如供應(yīng)商的名稱、分公司的名稱、客戶的區(qū)域信息缺失、業(yè)務(wù)系統(tǒng)中主表與明細(xì)表不能 匹配等。對(duì)于這一類數(shù)據(jù)過濾出來,按缺失的內(nèi)容分別寫入不同Excel文件向客戶提交,要求在規(guī)定的時(shí)間內(nèi)補(bǔ)全。補(bǔ)全后才寫入數(shù)據(jù)倉庫。

      (2)錯(cuò)誤的數(shù)據(jù):這一類錯(cuò)誤產(chǎn)生的原因是業(yè)務(wù)系統(tǒng)不夠健全,在接收輸入后沒有進(jìn)行判斷直接寫入后臺(tái)數(shù)據(jù)庫造成的,比如數(shù)值數(shù)據(jù)輸成全角數(shù)字字 符、字符串?dāng)?shù)據(jù)后面有一個(gè)回車操作、日期格式不正確、日期越界等。這一類數(shù)據(jù)也要分類,對(duì)于類似于全角字符、數(shù)據(jù)前后有不可見字符的問題,只能通過寫 SQL語句的方式找出來,然后要求客戶在業(yè)務(wù)系統(tǒng)修正之后抽取。日期格式不正確的或者是日期越界的這一類錯(cuò)誤會(huì)導(dǎo)致ETL運(yùn)行失敗,這一類錯(cuò)誤需要去業(yè)務(wù) 系統(tǒng)數(shù)據(jù)庫用SQL的方式挑出來,交給業(yè)務(wù)主管部門要求限期修正,修正之后再抽取。

      (3)重復(fù)的數(shù)據(jù):對(duì)于這一類數(shù)據(jù)——特別是維表中會(huì)出現(xiàn)這種情況——將重復(fù)數(shù)據(jù)記錄的所有字段導(dǎo)出來,讓客戶確認(rèn)并整理。

      數(shù)據(jù)清洗是一個(gè)反復(fù)的過程,不可能在幾天內(nèi)完成,只有不斷的發(fā)現(xiàn)問題,解決問題。對(duì)于是否過濾,是否修正一般要求客戶確認(rèn),對(duì)于過濾掉的數(shù)據(jù), 寫入Excel文件或者將過濾數(shù)據(jù)寫入數(shù)據(jù)表,在ETL開發(fā)的初期可以每天向業(yè)務(wù)單位發(fā)送過濾數(shù)據(jù)的郵件,促使他們盡快地修正錯(cuò)誤,同時(shí)也可以做為將來驗(yàn) 證數(shù)據(jù)的依據(jù)。數(shù)據(jù)清洗需要注意的是不要將有用的數(shù)據(jù)過濾掉,對(duì)于每個(gè)過濾規(guī)則認(rèn)真進(jìn)行驗(yàn)證,并要用戶確認(rèn)。



    2、 數(shù)據(jù)轉(zhuǎn)換

    數(shù)據(jù)轉(zhuǎn)換的任務(wù)主要進(jìn)行不一致的數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)粒度的轉(zhuǎn)換,以及一些商務(wù)規(guī)則的計(jì)算。

      (1)不一致數(shù)據(jù)轉(zhuǎn)換:這個(gè)過程是一個(gè)整合的過程,將不同業(yè)務(wù)系統(tǒng)的相同類型的數(shù)據(jù)統(tǒng)一,比如同一個(gè)供應(yīng)商在結(jié)算系統(tǒng)的編碼是XX0001,而在CRM中編碼是YY0001,這樣在抽取過來之后統(tǒng)一轉(zhuǎn)換成一個(gè)編碼。

      (2)數(shù)據(jù)粒度的轉(zhuǎn)換:業(yè)務(wù)系統(tǒng)一般存儲(chǔ)非常明細(xì)的數(shù)據(jù),而數(shù)據(jù)倉庫中數(shù)據(jù)是用來分析的,不需要非常明細(xì)的數(shù)據(jù)。一般情況下,會(huì)將業(yè)務(wù)系統(tǒng)數(shù)據(jù)按照數(shù)據(jù)倉庫粒度進(jìn)行聚合。

      (3)商務(wù)規(guī)則的計(jì)算:不同的企業(yè)有不同的業(yè)務(wù)規(guī)則、不同的數(shù)據(jù)指標(biāo),這些指標(biāo)有的時(shí)候不是簡單的加加減減就能完成,這個(gè)時(shí)候需要在ETL中將這些數(shù)據(jù)指標(biāo)計(jì)算好了之后存儲(chǔ)在數(shù)據(jù)倉庫中,以供分析使用。

    三、ETL日志、警告發(fā)送

    1、 ETL日志

      ETL日志分為三類。一類是執(zhí)行過程日志,這一部分日志是在ETL執(zhí)行過程中每執(zhí)行一步的記錄,記錄每次運(yùn)行每一步驟的起始時(shí)間,影響了多少行 數(shù)據(jù),流水賬形式。一類是錯(cuò)誤日志,當(dāng)某個(gè)模塊出錯(cuò)的時(shí)候?qū)戝e(cuò)誤日志,記錄每次出錯(cuò)的時(shí)間、出錯(cuò)的模塊以及出錯(cuò)的信息等。第三類日志是總體日志,只記錄 ETL開始時(shí)間、結(jié)束時(shí)間是否成功信息。如果使用ETL工具,ETL工具會(huì)自動(dòng)產(chǎn)生一些日志,這一類日志也可以作為ETL日志的一部分。記錄日志的目的是 隨時(shí)可以知道ETL運(yùn)行情況,如果出錯(cuò)了,可以知道哪里出錯(cuò)。

      2、 警告發(fā)送

      如果ETL出錯(cuò)了,不僅要形成ETL出錯(cuò)日志,而且要向系統(tǒng)管理員發(fā)送警告。發(fā)送警告的方式多種,一般常用的就是給系統(tǒng)管理員發(fā)送郵件,并附上出錯(cuò)的信息,方便管理員排查錯(cuò)誤。

      ETL是BI項(xiàng)目的關(guān)鍵部分,也是一個(gè)長期的過程,只有不斷的發(fā)現(xiàn)問題并解決問題,才能使ETL運(yùn)行效率更高,為BI項(xiàng)目后期開發(fā)提供準(zhǔn)確的數(shù)據(jù)。


    posted @ 2007-04-18 09:12 ivaneeo 閱讀(1460) | 評(píng)論 (0)編輯 收藏

    配置模板:config.vc

    # =========================================================================
    #     This configuration file was generated by
    #     Bakefile 0.2.1 (http://bakefile.sourceforge.net)
    #     Beware that all changes made to this file will be overwritten next
    #     time you run Bakefile!
    # =========================================================================


    # -------------------------------------------------------------------------
    # These are configurable options:
    # -------------------------------------------------------------------------

    # C compiler
    CC = cl

    # C++ compiler
    CXX = cl

    # Standard flags for CC
    CFLAGS =

    # Standard flags for C++
    CXXFLAGS =

    # Standard preprocessor flags (common for CC and CXX)
    CPPFLAGS =

    # Standard linker flags
    LDFLAGS =

    # The C preprocessor
    CPP = $(CC) /EP /nologo

    # What type of library to build? [0,1]
    SHARED = 0

    # Build wxUniversal instead of native port? [0,1]
    WXUNIV = 0

    # Compile Unicode build of wxWidgets? [0,1]
    UNICODE = 0

    # Use MSLU library when building Unicode version. [0,1]
    MSLU = 0

    # Type of compiled binaries [debug,release]
    BUILD = release

    # The target processor architecture must be specified when it is not X86.
    # This does not affect the compiler output, so you still need to make sure
    # your environment is set up appropriately with the correct compiler in the
    # PATH. Rather it affects some options passed to some of the common build
    # utilities such as the resource compiler and the linker.
    #
    # Accepted values: AMD64, IA64.
    TARGET_CPU = $(CPU)

    # Should debugging info be included in the executables? The default value
    # "default" means that debug info will be included if BUILD=debug
    # and not included if BUILD=release. [0,1,default]
    DEBUG_INFO = default

    # Should __WXDEBUG__ be defined? The default value "default" means that it will
    # be defined if BUILD=debug and not defined if BUILD=release. [0,1,default]
    DEBUG_FLAG = default

    # Should link against debug RTL (msvcrtd.dll) or release (msvcrt.dll)?
    # Acts according to BUILD by default. [0,1,default]
    DEBUG_RUNTIME_LIBS = default

    # Multiple libraries or single huge monolithic one? [0,1]
    MONOLITHIC = 0

    # Build GUI libraries? [0,1]
    USE_GUI = 1

    # Build wxHTML library (USE_GUI must be 1)? [0,1]
    USE_HTML = 1

    # Build multimedia library (USE_GUI must be 1)? [0,1]
    USE_MEDIA = 1

    # Build wxXRC library (USE_GUI must be 1)? [0,1]
    USE_XRC = 1

    # Build wxAUI library (USE_GUI must be 1)? [0,1]
    USE_AUI = 1

    # Build wxRichTextCtrl library (USE_GUI must be 1)? [0,1]
    USE_RICHTEXT = 1

    # Build OpenGL canvas library (USE_GUI must be 1)? [0,1]
    USE_OPENGL = 0

    # Build ODBC database classes (USE_GUI must be 1)? [0,1]
    USE_ODBC = 0

    # Build quality assurance classes library (USE_GUI must be 1)? [0,1]
    USE_QA = 1

    # Enable exceptions in compiled code. [0,1]
    USE_EXCEPTIONS = 1

    # Enable run-time type information (RTTI) in compiled code. [0,1]
    USE_RTTI = 1

    # Enable threading in compiled code. [0,1]
    USE_THREADS = 1

    # Link with gdiplus.lib? (Needed for wxGraphicsContext, will also set wxUSE_GRAPHICS_CONTEXT) [0,1]
    USE_GDIPLUS = 0

    # Is this official build by wxWidgets developers? [0,1]
    OFFICIAL_BUILD = 0

    # Use this to name your customized DLLs differently
    VENDOR = custom

    #  
    WX_FLAVOUR =

    #  
    WX_LIB_FLAVOUR =

    # Name of your custom configuration. This affects directory
    # where object files are stored as well as the location of
    # compiled .lib files and setup.h under the lib/ toplevel directory.
    CFG =

    # Compiler flags needed to compile test suite in tests directory. If you want
    # to run the tests, set it so that the compiler can find CppUnit headers.
    CPPUNIT_CFLAGS =

    # Linker flags needed to link test suite in tests directory. If you want
    # to run the tests, include CppUnit library here.
    CPPUNIT_LIBS =

    # Version of C runtime library to use. You can change this to
    # static if SHARED=0, but it is highly recommended to not do
    # it if SHARED=1 unless you know what you are doing. [dynamic,static]
    RUNTIME_LIBS = dynamic



    makefile: makefile.vc
    # =========================================================================
    #     This makefile was generated by
    #     Bakefile 0.2.1 (http://bakefile.sourceforge.net)
    #     Do not modify, all changes will be overwritten!
    # =========================================================================

    !include <../../build/msw/config.vc>

    # -------------------------------------------------------------------------
    # Do not modify the rest of this file!
    # -------------------------------------------------------------------------

    ### Variables: ###

    WX_RELEASE_NODOT = 28
    OBJS = \
        vc_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)$(DIR_SUFFIX_CPU)
    LIBDIRNAME = .\..\..\lib\vc$(DIR_SUFFIX_CPU)_$(LIBTYPE_SUFFIX)$(CFG)
    SETUPHDIR = \
        $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)
    TASKBAR_CXXFLAGS = /M$(__RUNTIME_LIBS_8)$(__DEBUGRUNTIME_3) /DWIN32 \
        $(__DEBUGINFO_0) /Fd$(OBJS)\taskbar.pdb $(____DEBUGRUNTIME_2_p) \
        $(__OPTIMIZEFLAG_4) $(__NO_VC_CRTDBG_p) /D__WXMSW__ $(__WXUNIV_DEFINE_p) \
        $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
        $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__MSLU_DEFINE_p) \
        $(__GFXCTX_DEFINE_p) /I$(SETUPHDIR) /I.\..\..\include /W4 /I. $(__DLLFLAG_p) \
        /D_WINDOWS /I.\..\..\samples /DNOPCH $(__RTTIFLAG_9) $(__EXCEPTIONSFLAG_10) \
        $(CPPFLAGS) $(CXXFLAGS)
    TASKBAR_OBJECTS =  \
        $(OBJS)\taskbar_sample.res \
        $(OBJS)\taskbar_tbtest.obj

    ### Conditionally set variables: ###

    !if "$(USE_GUI)" == "0"
    PORTNAME = base
    !endif
    !if "$(USE_GUI)" == "1"
    PORTNAME = msw
    !endif
    !if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default"
    WXDEBUGFLAG = d
    !endif
    !if "$(DEBUG_FLAG)" == "1"
    WXDEBUGFLAG = d
    !endif
    !if "$(UNICODE)" == "1"
    WXUNICODEFLAG = u
    !endif
    !if "$(WXUNIV)" == "1"
    WXUNIVNAME = univ
    !endif
    !if "$(TARGET_CPU)" == "amd64"
    DIR_SUFFIX_CPU = _amd64
    !endif
    !if "$(TARGET_CPU)" == "amd64"
    DIR_SUFFIX_CPU = _amd64
    !endif
    !if "$(TARGET_CPU)" == "ia64"
    DIR_SUFFIX_CPU = _ia64
    !endif
    !if "$(TARGET_CPU)" == "ia64"
    DIR_SUFFIX_CPU = _ia64
    !endif
    !if "$(SHARED)" == "1"
    WXDLLFLAG = dll
    !endif
    !if "$(SHARED)" == "0"
    LIBTYPE_SUFFIX = lib
    !endif
    !if "$(SHARED)" == "1"
    LIBTYPE_SUFFIX = dll
    !endif
    !if "$(TARGET_CPU)" == "amd64"
    LINK_TARGET_CPU = /MACHINE:AMD64
    !endif
    !if "$(TARGET_CPU)" == "amd64"
    LINK_TARGET_CPU = /MACHINE:AMD64
    !endif
    !if "$(TARGET_CPU)" == "ia64"
    LINK_TARGET_CPU = /MACHINE:IA64
    !endif
    !if "$(TARGET_CPU)" == "ia64"
    LINK_TARGET_CPU = /MACHINE:IA64
    !endif
    !if "$(MONOLITHIC)" == "0"
    EXTRALIBS_FOR_BASE =
    !endif
    !if "$(MONOLITHIC)" == "1"
    EXTRALIBS_FOR_BASE = 
    !endif
    !if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default"
    __DEBUGINFO_0 = /Zi
    !endif
    !if "$(BUILD)" == "release" && "$(DEBUG_INFO)" == "default"
    __DEBUGINFO_0 =
    !endif
    !if "$(DEBUG_INFO)" == "0"
    __DEBUGINFO_0 =
    !endif
    !if "$(DEBUG_INFO)" == "1"
    __DEBUGINFO_0 = /Zi
    !endif
    !if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default"
    __DEBUGINFO_1 = /DEBUG
    !endif
    !if "$(BUILD)" == "release" && "$(DEBUG_INFO)" == "default"
    __DEBUGINFO_1 =
    !endif
    !if "$(DEBUG_INFO)" == "0"
    __DEBUGINFO_1 =
    !endif
    !if "$(DEBUG_INFO)" == "1"
    __DEBUGINFO_1 = /DEBUG
    !endif
    !if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default"
    ____DEBUGRUNTIME_2_p = /D_DEBUG
    !endif
    !if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
    ____DEBUGRUNTIME_2_p =
    !endif
    !if "$(DEBUG_RUNTIME_LIBS)" == "0"
    ____DEBUGRUNTIME_2_p =
    !endif
    !if "$(DEBUG_RUNTIME_LIBS)" == "1"
    ____DEBUGRUNTIME_2_p = /D_DEBUG
    !endif
    !if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default"
    ____DEBUGRUNTIME_2_p_1 = /d _DEBUG
    !endif
    !if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
    ____DEBUGRUNTIME_2_p_1 =
    !endif
    !if "$(DEBUG_RUNTIME_LIBS)" == "0"
    ____DEBUGRUNTIME_2_p_1 =
    !endif
    !if "$(DEBUG_RUNTIME_LIBS)" == "1"
    ____DEBUGRUNTIME_2_p_1 = /d _DEBUG
    !endif
    !if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default"
    __DEBUGRUNTIME_3 = d
    !endif
    !if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default"
    __DEBUGRUNTIME_3 =
    !endif
    !if "$(DEBUG_RUNTIME_LIBS)" == "0"
    __DEBUGRUNTIME_3 =
    !endif
    !if "$(DEBUG_RUNTIME_LIBS)" == "1"
    __DEBUGRUNTIME_3 = d
    !endif
    !if "$(BUILD)" == "debug"
    __OPTIMIZEFLAG_4 = /Od
    !endif
    !if "$(BUILD)" == "release"
    __OPTIMIZEFLAG_4 = /O2
    !endif
    !if "$(USE_THREADS)" == "0"
    __THREADSFLAG_7 = L
    !endif
    !if "$(USE_THREADS)" == "1"
    __THREADSFLAG_7 = T
    !endif
    !if "$(RUNTIME_LIBS)" == "dynamic"
    __RUNTIME_LIBS_8 = D
    !endif
    !if "$(RUNTIME_LIBS)" == "static"
    __RUNTIME_LIBS_8 = $(__THREADSFLAG_7)
    !endif
    !if "$(USE_RTTI)" == "0"
    __RTTIFLAG_9 =
    !endif
    !if "$(USE_RTTI)" == "1"
    __RTTIFLAG_9 = /GR
    !endif
    !if "$(USE_EXCEPTIONS)" == "0"
    __EXCEPTIONSFLAG_10 =
    !endif
    !if "$(USE_EXCEPTIONS)" == "1"
    __EXCEPTIONSFLAG_10 = /EHsc
    !endif
    !if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "0"
    __NO_VC_CRTDBG_p = /D__NO_VC_CRTDBG__
    !endif
    !if "$(BUILD)" == "release" && "$(DEBUG_FLAG)" == "1"
    __NO_VC_CRTDBG_p = /D__NO_VC_CRTDBG__
    !endif
    !if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "0"
    __NO_VC_CRTDBG_p_1 = /d __NO_VC_CRTDBG__
    !endif
    !if "$(BUILD)" == "release" && "$(DEBUG_FLAG)" == "1"
    __NO_VC_CRTDBG_p_1 = /d __NO_VC_CRTDBG__
    !endif
    !if "$(WXUNIV)" == "1"
    __WXUNIV_DEFINE_p = /D__WXUNIVERSAL__
    !endif
    !if "$(WXUNIV)" == "1"
    __WXUNIV_DEFINE_p_1 = /d __WXUNIVERSAL__
    !endif
    !if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default"
    __DEBUG_DEFINE_p = /D__WXDEBUG__
    !endif
    !if "$(DEBUG_FLAG)" == "1"
    __DEBUG_DEFINE_p = /D__WXDEBUG__
    !endif
    !if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default"
    __DEBUG_DEFINE_p_1 = /d __WXDEBUG__
    !endif
    !if "$(DEBUG_FLAG)" == "1"
    __DEBUG_DEFINE_p_1 = /d __WXDEBUG__
    !endif
    !if "$(USE_EXCEPTIONS)" == "0"
    __EXCEPTIONS_DEFINE_p = /DwxNO_EXCEPTIONS
    !endif
    !if "$(USE_EXCEPTIONS)" == "0"
    __EXCEPTIONS_DEFINE_p_1 = /d wxNO_EXCEPTIONS
    !endif
    !if "$(USE_RTTI)" == "0"
    __RTTI_DEFINE_p = /DwxNO_RTTI
    !endif
    !if "$(USE_RTTI)" == "0"
    __RTTI_DEFINE_p_1 = /d wxNO_RTTI
    !endif
    !if "$(USE_THREADS)" == "0"
    __THREAD_DEFINE_p = /DwxNO_THREADS
    !endif
    !if "$(USE_THREADS)" == "0"
    __THREAD_DEFINE_p_1 = /d wxNO_THREADS
    !endif
    !if "$(UNICODE)" == "1"
    __UNICODE_DEFINE_p = /D_UNICODE
    !endif
    !if "$(UNICODE)" == "1"
    __UNICODE_DEFINE_p_1 = /d _UNICODE
    !endif
    !if "$(MSLU)" == "1"
    __MSLU_DEFINE_p = /DwxUSE_UNICODE_MSLU=1
    !endif
    !if "$(MSLU)" == "1"
    __MSLU_DEFINE_p_1 = /d wxUSE_UNICODE_MSLU=1
    !endif
    !if "$(USE_GDIPLUS)" == "1"
    __GFXCTX_DEFINE_p = /DwxUSE_GRAPHICS_CONTEXT=1
    !endif
    !if "$(USE_GDIPLUS)" == "1"
    __GFXCTX_DEFINE_p_1 = /d wxUSE_GRAPHICS_CONTEXT=1
    !endif
    !if "$(SHARED)" == "1"
    __DLLFLAG_p = /DWXUSINGDLL
    !endif
    !if "$(SHARED)" == "1"
    __DLLFLAG_p_1 = /d WXUSINGDLL
    !endif
    !if "$(MONOLITHIC)" == "0"
    __WXLIB_ADV_p = \
        wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.lib
    !endif
    !if "$(MONOLITHIC)" == "0"
    __WXLIB_HTML_p = \
        wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.lib
    !endif
    !if "$(MONOLITHIC)" == "0"
    __WXLIB_XML_p = \
        wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.lib
    !endif
    !if "$(MONOLITHIC)" == "0"
    __WXLIB_CORE_p = \
        wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib
    !endif
    !if "$(MONOLITHIC)" == "0"
    __WXLIB_BASE_p = \
        wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib
    !endif
    !if "$(MONOLITHIC)" == "1"
    __WXLIB_MONO_p = \
        wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib
    !endif
    !if "$(USE_GUI)" == "1"
    __LIB_TIFF_p = wxtiff$(WXDEBUGFLAG).lib
    !endif
    !if "$(USE_GUI)" == "1"
    __LIB_JPEG_p = wxjpeg$(WXDEBUGFLAG).lib
    !endif
    !if "$(USE_GUI)" == "1"
    __LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib
    !endif
    !if "$(MSLU)" == "1"
    __UNICOWS_LIB_p = unicows.lib
    !endif
    !if "$(USE_GDIPLUS)" == "1"
    __GDIPLUS_LIB_p = gdiplus.lib
    !endif


    all: $(OBJS)
    $(OBJS):
        -if not exist $(OBJS) mkdir $(OBJS)

    ### Targets: ###

    all: $(OBJS)\taskbar.exe

    clean:
        -if exist $(OBJS)\*.obj del $(OBJS)\*.obj
        -if exist $(OBJS)\*.res del $(OBJS)\*.res
        -if exist $(OBJS)\*.pch del $(OBJS)\*.pch
        -if exist $(OBJS)\taskbar.exe del $(OBJS)\taskbar.exe
        -if exist $(OBJS)\taskbar.ilk del $(OBJS)\taskbar.ilk
        -if exist $(OBJS)\taskbar.pdb del $(OBJS)\taskbar.pdb

    $(OBJS)\taskbar.exe: $(TASKBAR_OBJECTS) $(OBJS)\taskbar_sample.res
        link /NOLOGO /OUT:$@ $(LDFLAGS) $(__DEBUGINFO_1)  $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:WINDOWS @<<
        $(TASKBAR_OBJECTS)  $(__WXLIB_ADV_p)  $(__WXLIB_HTML_p)  $(__WXLIB_XML_p)  $(__WXLIB_CORE_p)  $(__WXLIB_BASE_p)  $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p)  wxzlib$(WXDEBUGFLAG).lib  wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib odbc32.lib
    <<

    $(OBJS)\taskbar_sample.res: .\..\..\samples\sample.rc
        rc /fo$@  /d WIN32 $(____DEBUGRUNTIME_2_p_1) $(__NO_VC_CRTDBG_p_1)  /d __WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) $(__MSLU_DEFINE_p_1) $(__GFXCTX_DEFINE_p_1) /i $(SETUPHDIR) /i .\..\..\include /i . $(__DLLFLAG_p_1) /d _WINDOWS /i .\..\..\samples $**

    $(OBJS)\taskbar_tbtest.obj: .\tbtest.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(TASKBAR_CXXFLAGS) $**

    posted @ 2007-04-11 13:49 ivaneeo 閱讀(1668) | 評(píng)論 (0)編輯 收藏

    1.GetVersionEx
    ???wince:GetVersionExW_OSVERSIONINFOW
    ???winnt:GetVersionExA_OSVERSIONINFOA, GetVersionExW_OSVERSIONINFOW, GetVersionExA_OSVERSIONINFOEXA, GetVersionExW_OSVERSIONINFOEXW
    ???win98:需unicode支持
    posted @ 2007-02-23 15:31 ivaneeo 閱讀(375) | 評(píng)論 (0)編輯 收藏

    實(shí)現(xiàn)的manifest文件如下:
    ???<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="SWT.javaw" type="win32"/><description>Standard Widget Toolkit</description><dependency><dependentAssembly><assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*"/></dependentAssembly></dependency></assembly>

    ???
    posted @ 2007-02-17 14:18 ivaneeo 閱讀(367) | 評(píng)論 (0)編輯 收藏

    如果編譯后的exe文件名為:test.exe
    ???那么新建:test.exe.manifest:
    ??????<?xml version="2.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity
    ??? version="0.64.1.0"
    ??? processorArchitecture="x86"
    ??? name="Controls"
    ??? type="win32"
    />
    <description>wxWindows application</description>
    <dependency>
    ??? <dependentAssembly>
    ??????? <assemblyIdentity
    ??????????? type="win32"
    ??????????? name="Microsoft.Windows.Common-Controls"
    ??????????? version="6.0.0.0"
    ??????????? processorArchitecture="X86"
    ??????????? publicKeyToken="6595b64144ccf1df"
    ??????????? language="*"
    ??????? />
    ??? </dependentAssembly>
    </dependency>
    </assembly>
    posted @ 2007-02-16 23:34 ivaneeo 閱讀(1930) | 評(píng)論 (0)編輯 收藏

    我們只要在文件開頭添加:
    ???# -*- coding:?UTF-8 -*-
    來指明文件的編碼格式。在windows下最好用GBK.

    posted @ 2007-02-16 16:42 ivaneeo 閱讀(552) | 評(píng)論 (0)編輯 收藏

    在swt代碼中有一個(gè)段:

    #define OS_NATIVE(func) Java_org_eclipse_swt_internal_gtk_OS_##func

    如果宏代替OS_NATIVE(foo),這樣就會(huì)產(chǎn)生這樣一個(gè)代替Java_org_eclipse_swt_internal_gtk_OS_foo.
    非常實(shí)用!
    posted @ 2007-02-06 11:32 ivaneeo 閱讀(557) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共67頁: First 上一頁 19 20 21 22 23 24 25 26 27 下一頁 Last 
    主站蜘蛛池模板: 亚洲精品亚洲人成在线观看麻豆 | 两性刺激生活片免费视频| 美女被免费网站在线视频免费 | 免费观看的毛片大全| 久9这里精品免费视频| 特级毛片A级毛片免费播放| 国产.亚洲.欧洲在线| 久久精品国产亚洲AV麻豆网站| 国产精品亚洲综合一区| 看全色黄大色大片免费久久| 午夜免费1000部| 久章草在线精品视频免费观看| 成人一区二区免费视频| 添bbb免费观看高清视频| 亚洲人成网站在线播放2019| 亚洲一区二区影视| 亚洲国产精品人久久电影| 亚洲AV日韩精品久久久久久久 | 国产线视频精品免费观看视频| 免费很黄无遮挡的视频毛片| 亚洲av最新在线观看网址| 7777久久亚洲中文字幕| 亚洲国产精品无码久久久| 亚洲影视一区二区| 亚洲国产日韩女人aaaaaa毛片在线| 亚洲精品视频在线| 久久香蕉国产线看观看亚洲片| 久久亚洲国产欧洲精品一| 亚洲成色WWW久久网站| 亚洲a一级免费视频| 亚洲综合一区二区国产精品| 久久久久亚洲AV成人无码| 亚洲阿v天堂在线| 亚洲国产日韩一区高清在线| 亚洲最大成人网色| 亚洲女人18毛片水真多| 亚洲伦理一二三四| 亚洲日韩久久综合中文字幕| 亚洲AV性色在线观看| 国产精品亚洲一区二区三区在线观看| 日韩国产欧美亚洲v片|