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 閱讀(339) | 評論 (0)編輯 收藏

          qt4內(nèi)置有sqlite插件,可以直接使用sqlite.但是發(fā)現(xiàn)插入中文時會有亂碼問題。
          以windows為例,qt4內(nèi)置編碼為system(GBK).而sqlite內(nèi)部編碼為unicode.
          如果插入中文首先要轉(zhuǎn)換為unicode.而從數(shù)據(jù)庫讀取時則不需要,因為qt會自動偵測編碼,
          實例代碼:
              //插入記錄
              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 閱讀(2312) | 評論 (2)編輯 收藏

          1.
              Transformation代表Informatica Server對數(shù)據(jù)的操作。
              Transformation分類:Active和Passive
                 輸入跟輸出的記錄數(shù)會發(fā)生改變
                 不能re-linked到另一個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到另一個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 閱讀(693) | 評論 (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ù)主管部門,確認是否過濾掉還是由業(yè)務(wù)單位修正之后再進行抽取。不符合要求的數(shù)據(jù)主要是有不完整的數(shù)據(jù)、錯誤的數(shù)據(jù)、重復(fù)的數(shù)據(jù)三大類。

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

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

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

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



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

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

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

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

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

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

          1、 ETL日志

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

            2、 警告發(fā)送

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

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


          posted @ 2007-04-18 09:12 ivaneeo 閱讀(1468) | 評論 (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 閱讀(1671) | 評論 (0)編輯 收藏

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

          實現(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 閱讀(370) | 評論 (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 閱讀(1933) | 評論 (0)編輯 收藏

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

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

          在swt代碼中有一個段:

          #define OS_NATIVE(func) Java_org_eclipse_swt_internal_gtk_OS_##func

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

          僅列出標題
          共67頁: First 上一頁 19 20 21 22 23 24 25 26 27 下一頁 Last 
          主站蜘蛛池模板: 浙江省| 阿克| 沂南县| 庐江县| 浦北县| 山阴县| 福泉市| 凌源市| 旬邑县| 视频| 榕江县| 温泉县| 星座| 观塘区| 旅游| 玛曲县| 海城市| 台东市| 富锦市| 平山县| 旅游| 金昌市| 湖南省| 永定县| 北京市| 甘孜县| 孟州市| 清苑县| 仁化县| 静安区| 西昌市| 兴隆县| 邓州市| 富宁县| 广平县| 淮安市| 五河县| 叙永县| 沅陵县| 江北区| 龙里县|