??xml version="1.0" encoding="utf-8" standalone="yes"?>青青色在线视频,成人av电影在线观看,国模私拍国内精品国内avhttp://www.aygfsteel.com/ivanwan/archive/2014/06/04/414398.htmlivaneeoivaneeoWed, 04 Jun 2014 09:09:00 GMThttp://www.aygfsteel.com/ivanwan/archive/2014/06/04/414398.htmlhttp://www.aygfsteel.com/ivanwan/comments/414398.htmlhttp://www.aygfsteel.com/ivanwan/archive/2014/06/04/414398.html#Feedback0http://www.aygfsteel.com/ivanwan/comments/commentRss/414398.htmlhttp://www.aygfsteel.com/ivanwan/services/trackbacks/414398.htmlhttp://code4app.net/category/cocos2d
http://www.cocos2d-x.org/hub/all?category=5
http://blog.makeapp.co/


ivaneeo 2014-06-04 17:09 发表评论
]]>
ull convert to stringhttp://www.aygfsteel.com/ivanwan/archive/2013/04/22/398234.htmlivaneeoivaneeoMon, 22 Apr 2013 13:29:00 GMThttp://www.aygfsteel.com/ivanwan/archive/2013/04/22/398234.htmlhttp://www.aygfsteel.com/ivanwan/comments/398234.htmlhttp://www.aygfsteel.com/ivanwan/archive/2013/04/22/398234.html#Feedback0http://www.aygfsteel.com/ivanwan/comments/commentRss/398234.htmlhttp://www.aygfsteel.com/ivanwan/services/trackbacks/398234.html        char Str[20];
        int ret;
        ret = sprintf(Str, "%llu",ifconfig.flags);

ivaneeo 2013-04-22 21:29 发表评论
]]>
How to compile a wxWidgets application in Visual Studio 2008?http://www.aygfsteel.com/ivanwan/archive/2012/02/17/370193.htmlivaneeoivaneeoFri, 17 Feb 2012 07:43:00 GMThttp://www.aygfsteel.com/ivanwan/archive/2012/02/17/370193.htmlhttp://www.aygfsteel.com/ivanwan/comments/370193.htmlhttp://www.aygfsteel.com/ivanwan/archive/2012/02/17/370193.html#Feedback0http://www.aygfsteel.com/ivanwan/comments/commentRss/370193.htmlhttp://www.aygfsteel.com/ivanwan/services/trackbacks/370193.html

Step 1 – Install Visual Studio 2008

  1. If you don’t have it, get the express edition here: http://www.microsoft.com/Express/VC/
  2. Run through the installer, not much else to do.

Step 2 – Install wxWidgets

  1. Download wxWidgets (select the wxMSW installer file) from here:
    http://www.wxwidgets.org/downloads/
  2. I choose to install to c:\dev\wxwidgets\wxWidgets-2.8.10 but you can choose a different path if you want.

Step 3 – Create an environment variable for the wxWidgets path.

  1. Click the Start icon.
  2. Right click on Computer and choose Properties.
  3. Click Advanced system settings.
  4. Click the Environment variables button.
  5. Under System Variables, click New.
  6. Enter the Variable name: WXWIN
  7. Enter the Variable Value: C:\Dev\wxWidgets-2.8.10
  8. Click OK, click OK, click OK (yes three times).

Step 4 – Compile the wxWidgets Libraries.

  1. Browse to the following folder: C:\Dev\wxWidgets-2.8.10\build\msw
  2. Located the file called wx.dsw and open it with Visual Studio. (I just double-clicked on it.)
  3. Choose “Yes to all” when Visual Studio prompts you to convert the project.
  4. Build the project.
  5. Wait for the build to complete. It took approximately two minutes on my Lenovo T61p (dual core, 4 GB, Windows 7 64 bit). You should a line like this when it finishes successfully.
    ========== Build: 20 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
  6. Close Visual Studio.

Step 5 – Create a new project

  1. In Visual Studio 2008, go to File | New Project.
  2. Select Visual C++ | Empty Project.
  3. Give the project a name and click OK. I named this wxTest.

Step 6 – Create/Copy your source to this project.

  1. Right-click on the Project name and choose Open Folder in Windows Explorer. This will open to the home folder of your project. (Don’t right click the Solution name, make sure to right click the project under the solution name.)
  2. Open a second Windows Explore window.
  3. In the second window, browse to the wxWidgets sample directory and open the Minimal folder: C:\Dev\wxWidgets-2.8.10\samples\Minimal
    Note: You can choose other projects but you may want to start with Minimal and move on from there.
  4. Copy only the minimal.cpp and minimal.rc files to your project directory (the rest are not needed).
  5. Close the second window pointing to the C:\Dev\wxWidgets-2.8.10\samples\Minimal directory, it is not needed anymore.
  6. From the explorer window open to your project directory, use ctrl+click to highlight both the minimal.cpp and minimal.rc files.
  7. Drag both highlighted files into the Visual Studio Window and drop them over the project name.
    The minimal.cpp file should automatically be placed under the Source files section of your project.
    The minimal.rc file should automatically be placed under the Resource files section of your project.

Step 7 – Customize the project properties

  1. Right-click on the wxTest project and select Properties. (Don’t right click the Solution name, make sure to right click the project under the solution name.)
  2. In the top left of the properties window there is a Configuration drop down menu. Select All Configurations.
  3. Click to expand Configuration Properties.
  4. Click to expand C/C++.

    Note: If you don’t see a C/C++ section, then you don’t have any source files.  You need at least one C++ source file for this section to show up.

  5. Click to highlight General.
  6. Enter the following in Additional Include Directories.
    $(WXWIN)\include;$(WXWIN)\lib\vc_lib\mswd
  7. Click to highlight Preprocessor.
  8. Enter the following in Preprocessor Definitions.
    WIN32;__WXMSW__;_WINDOWS;_DEBUG;__WXDEBUG__
  9. Click to expand Linker.
  10. Click to highlight General.
  11. Enter the following in Additional Library Directories.
    $(WXWIN)\lib\vc_lib
  12. Click to highlight Input.
  13. Enter the following in Additional Dependencies.
    wxmsw28d_core.lib wxbase28d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib odbc32.lib

    Note: Not all of these libraries are required for this project, however, I list all of these because you may use some of them at some point. If you don’t think one is needed, remove it and recompile and if you don’t get errors, you were right, you probably didn’t need it.

  14. Click to expand Resources. (If you don’t see a Resources option, then you don’t have any files under resources so that is normal. Did you skip Step 5 because you probably should have added a resource in Step 5.)
  15. Click to highlight General.
  16. Enter the following in Preprocessor Definitions.
    _DEBUG;__WXMSW__;__WXDEBUG__;_WINDOWS;NOPCH
  17. Enter the following in Additional Include Directories.
    $(WXWIN)\include;$(WXWIN)\lib\vc_lib\mswd

You are now ready to build your wxWidgets application using Visual Studio 2008 on Windows 7.

Build your project and if you get any errors, go through it again, you probably missed a step (or I did, since I have already been caught with one step left out).



ivaneeo 2012-02-17 15:43 发表评论
]]>
vc中gbk到utf-8的相互{?http://www.aygfsteel.com/ivanwan/archive/2012/02/09/369662.htmlivaneeoivaneeoThu, 09 Feb 2012 04:58:00 GMThttp://www.aygfsteel.com/ivanwan/archive/2012/02/09/369662.htmlhttp://www.aygfsteel.com/ivanwan/comments/369662.htmlhttp://www.aygfsteel.com/ivanwan/archive/2012/02/09/369662.html#Feedback0http://www.aygfsteel.com/ivanwan/comments/commentRss/369662.htmlhttp://www.aygfsteel.com/ivanwan/services/trackbacks/369662.htmlvoid ConvertGBKToUtf8(CString& strGBK) {
    int len=MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strGBK, -1, NULL,0);
    unsigned short * wszUtf8 = new unsigned short[len+1];
    memset(wszUtf8, 0, len * 2 + 2);
    MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strGBK, -1, wszUtf8, len);

    len = WideCharToMultiByte(CP_UTF8, 0, wszUtf8, -1, NULL, 0, NULL, NULL);
    char *szUtf8=new char[len + 1];
    memset(szUtf8, 0, len + 1);
    WideCharToMultiByte (CP_UTF8, 0, wszUtf8, -1, szUtf8, len, NULL,NULL);

    strGBK = szUtf8;
    delete[] szUtf8;
    delete[] wszUtf8;
}

void ConvertUtf8ToGBK(CString& strUtf8) {
    int len=MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, NULL,0);
    unsigned short * wszGBK = new unsigned short[len+1];
    memset(wszGBK, 0, len * 2 + 2);
    MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, wszGBK, len);

    len = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
    char *szGBK=new char[len + 1];
    memset(szGBK, 0, len + 1);
    WideCharToMultiByte (CP_ACP, 0, wszGBK, -1, szGBK, len, NULL,NULL);

    strUtf8 = szGBK;
    delete[] szGBK;
    delete[] wszGBK;
}

ivaneeo 2012-02-09 12:58 发表评论
]]>
wxwidget vc的makefile模板http://www.aygfsteel.com/ivanwan/archive/2007/04/11/109881.htmlivaneeoivaneeoWed, 11 Apr 2007 05:49:00 GMThttp://www.aygfsteel.com/ivanwan/archive/2007/04/11/109881.htmlhttp://www.aygfsteel.com/ivanwan/comments/109881.htmlhttp://www.aygfsteel.com/ivanwan/archive/2007/04/11/109881.html#Feedback0http://www.aygfsteel.com/ivanwan/comments/commentRss/109881.htmlhttp://www.aygfsteel.com/ivanwan/services/trackbacks/109881.html
# =========================================================================
#     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) $**



ivaneeo 2007-04-11 13:49 发表评论
]]>
windows下APIUnicode和ansi的版?/title><link>http://www.aygfsteel.com/ivanwan/archive/2007/02/23/100410.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Fri, 23 Feb 2007 07:31:00 GMT</pubDate><guid>http://www.aygfsteel.com/ivanwan/archive/2007/02/23/100410.html</guid><wfw:comment>http://www.aygfsteel.com/ivanwan/comments/100410.html</wfw:comment><comments>http://www.aygfsteel.com/ivanwan/archive/2007/02/23/100410.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/ivanwan/comments/commentRss/100410.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/ivanwan/services/trackbacks/100410.html</trackback:ping><description><![CDATA[ <font size="5">1.GetVersionEx</font> <br />   wince:GetVersionExW_OSVERSIONINFOW<br />   winnt:GetVersionExA_OSVERSIONINFOA, GetVersionExW_OSVERSIONINFOW, GetVersionExA_OSVERSIONINFOEXA, GetVersionExW_OSVERSIONINFOEXW<br />   win98:需unicode支持<br /><img src ="http://www.aygfsteel.com/ivanwan/aggbug/100410.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/ivanwan/" target="_blank">ivaneeo</a> 2007-02-23 15:31 <a href="http://www.aygfsteel.com/ivanwan/archive/2007/02/23/100410.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>定义宏的一个小技?/title><link>http://www.aygfsteel.com/ivanwan/archive/2007/02/06/98216.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Tue, 06 Feb 2007 03:32:00 GMT</pubDate><guid>http://www.aygfsteel.com/ivanwan/archive/2007/02/06/98216.html</guid><wfw:comment>http://www.aygfsteel.com/ivanwan/comments/98216.html</wfw:comment><comments>http://www.aygfsteel.com/ivanwan/archive/2007/02/06/98216.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/ivanwan/comments/commentRss/98216.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/ivanwan/services/trackbacks/98216.html</trackback:ping><description><![CDATA[在swt代码中有一个段:<br /><br /><font color="#ff0000">#define OS_NATIVE(func) Java_org_eclipse_swt_internal_gtk_OS_##func<br /><br /></font><font color="#000000">如果宏代替OS_NATIVE(foo),q样׃产生q样一个代替Java_org_eclipse_swt_internal_gtk_OS_foo.<br />非常实用!</font><img src ="http://www.aygfsteel.com/ivanwan/aggbug/98216.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/ivanwan/" target="_blank">ivaneeo</a> 2007-02-06 11:32 <a href="http://www.aygfsteel.com/ivanwan/archive/2007/02/06/98216.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>随机函数http://www.aygfsteel.com/ivanwan/archive/2006/10/09/74074.htmlivaneeoivaneeoMon, 09 Oct 2006 06:26:00 GMThttp://www.aygfsteel.com/ivanwan/archive/2006/10/09/74074.htmlhttp://www.aygfsteel.com/ivanwan/comments/74074.htmlhttp://www.aygfsteel.com/ivanwan/archive/2006/10/09/74074.html#Feedback0http://www.aygfsteel.com/ivanwan/comments/commentRss/74074.htmlhttp://www.aygfsteel.com/ivanwan/services/trackbacks/74074.html rand() % N /* 不好 */
试图q回从? 刊WN - 1 的数字。但q个Ҏ不好, 因ؓ许多随机? 发生器的低位比特q?span class="textbf">?/span>随机, 参见问题 13.16? 一个较好的Ҏ?
    (int)((double)rand() / ((double)RAND_MAX + 1) * N)
如果你不希望使用点, 另一个方法是:
    rand() / (RAND_MAX / N + 1)
两种Ҏ都需要知道 RAND_MAX, 而且假设 N 要远q小于 RAND_MAX?  RAND_MAX 在 ANSI 里?define 在?lt;stdlib.h>?

Z提一? RAND_MAX 是个常数, 它告诉你 C 库函敊Wrand()  的固定范围。你不可以设 RAND_MAX 为其它的? 也没有办法要求 rand()  q回其它范围的倹{?

如果你用的随机数发生器返回的是? 刊W? 的Q点? 要取得范围在 0 ?  N - 1 内的整数, 只要随机数乘以 N 可以了?



ivaneeo 2006-10-09 14:26 发表评论
]]>
C++cd介绍http://www.aygfsteel.com/ivanwan/archive/2006/10/02/73238.htmlivaneeoivaneeoMon, 02 Oct 2006 15:27:00 GMThttp://www.aygfsteel.com/ivanwan/archive/2006/10/02/73238.htmlhttp://www.aygfsteel.com/ivanwan/comments/73238.htmlhttp://www.aygfsteel.com/ivanwan/archive/2006/10/02/73238.html#Feedback0http://www.aygfsteel.com/ivanwan/comments/commentRss/73238.htmlhttp://www.aygfsteel.com/ivanwan/services/trackbacks/73238.html
标准库中提供了C++E序的基本设施。虽然C++标准库随着C++标准折腾了许多年Q直到标准的出台才正式定型,但是在标准库的实C却很令hƣ慰得看到多U实玎ͼq且已被实践证明为有工业U别强度的佳作?

1?Dinkumware C++ Library

参考站点:http://www.dinkumware.com/'>http://www.dinkumware.com/

P.J. Plauger~写的高品质的标准库。P.J. Plauger博士是Dr. Dobb'sE序设计杰出奖的获得者。其~写的库长期被Microsoft采用Qƈ且最qBorland也取得了其OEM的licenseQ在其C/C+ +的品中采用Dinkumware的库?

2?RogueWave Standard C++ Library

参考站点:http://www.roguewave.com/'>http://www.roguewave.com/'>http://www.roguewave.com/'>http://www.roguewave.com/

q个库在Borland C++ Builder的早期版本中曄被采用,后来被其他的库给替换了。笔者不推荐使用?

3、SGI STL

参考站点:http://www.roguewave.com/'>http://www.roguewave.com/'>http://www.roguewave.com/'>http://www.roguewave.com/

SGI公司的C++标准模版库?

4、STLport

参考站点:http://www.stlport.org/'>http://www.stlport.org/

SGI STL库的跨^台可UL版本?



准标准库——Boost

Boost 库是一个经q千锤百点{可UL、提供源代码的C++库,作ؓ标准库的后备Q是C++标准化进E的发动Z一?Boost库由C++标准委员会库工作l成员发P在C++C֌中媄响甚大,其成员已q?000人?Boost库ؓ我们带来了最新、最酗最实用的技术,是不折不扣的"?标准库?

Boost中比较有名气的有q么几个库:

Regex
正则表达式库

Spirit
LL parser frameworkQ用C++代码直接表达EBNF

Graph
囄件和法

Lambda
在调用的地方定义短小匿名的函数对象,很实用的functional功能

concept check
查泛型编E中的concept

Mpl
用模板实现的元编E框?

Thread
可移植的C++多线E库

Python
把C++cd函数映射到Python之中

Pool
内存池管?

smart_ptr
5个智能指针,学习指针必读Q一份不错的参考是来自CUJ的文章:

Smart Pointers in Boost,哦,q篇文章可以查到QCUJ是提供在U浏览的。中文版见笔者在《Dr. Dobb's Journal软g研发杂志》第7辑上的译文?


Boost M来说是实用h值很高,质量很高的库。ƈ且由于其对跨q_的强调,Ҏ准C++的强调,是编写^台无养ICC++的开发者必备的工具。但是Boost 中也有很多是实验性质的东西,在实际的开发中实用需要}慎。ƈ且很多Boost中的库功能堪U对语言功能的扩展,其构造用精巧的手法Q不要N然的p旉研读。Boost另外一面,比如Graphq样的库则是h工业强度Q结构良好,非常值得研读的精品代码,q且也可以放心的在品代码中多多利用?

参考站点:http://www.boost.org'>http://www.boost.orgQ国内镜像:http://www.c'> http://www.c'>http://www.c'>http://www.c-view.org/tech/lib/boost/index.htmQ?

GUI

在众多C++的库中,GUI部分的库是比较J荣Q也比较引h注目的。在实际开发中QGUI库的选择也是非常重要的一件事情,下面我们lD一下可选择的GUI库,各自的特点以及相兛_L支持?

1?MFC

大名鼎鼎的微软基cdQMicrosoft Foundation ClassQ。大凡学qVC++的h都应该知道这个库。虽然从技术角度讲QMFC是不大漂亮的Q但是它构徏于Windows API 之上Q能够ɽE序员的工作更容?~程效率高,减少了大量在建立 Windows E序时必ȝ写的代码Q同时它q提供了所有一?C++ ~程的优点,例如l承和封装。MFC ~写的程序在各个版本的Windows操作pȝ上是可移植的Q例如,?Windows 3.1下编写的代码可以很容易地UL?Windows NT ?Windows 95 上。但是在最q发展以及官Ҏ持上日渐势微?



2?QT

参考网站:http://www.trolltech.com/'>http://www.trolltech.com/

Qt 是Trolltech公司的一个多q_的C++囑Ş用户界面应用E序框架。它提供l应用程序开发者徏立艺术的图形用L面所需的所用功能。Qt是完全面向对象的很容易扩展,q且允许真正地组件编E。自?996q早些时候,Qtq入商业领域Q它已经成ؓ全世界范围内数千U成功的应用E序的基。Qt也是行的Linux桌面环境KDE 的基Q同时它q支持Windows、Macintosh、Unix/X11{多U^台?



3、WxWindows

参考网站:http://www.wxwindows.org/'>http://www.wxwindows.org/

跨^台的GUI库。因为其cdơ极像MFCQ所以有文章介绍从MFC到WxWindows的代码移植以实现跨^台的功能。通过多年的开发也是一个日完善的 GUI库,支持同样不弱于前面两个库。ƈ且是完全开放源代码的。新q的C++ Builder X的GUI设计器就是基于这个库的?

4、Fox

开放源代码的GUI库。作者从自己亲n的开发经验中得出了一个理想的GUI库应该是什么样子的感受出发Q从而开始了对这个库的开发。有兴趣的可以尝试一下?

参考网站:http://www.fox'>http://www.fox-toolkit.org/

5?WTL

ZATL的一个库。因Z用了大量ATL的轻量手法Q模板等技术,在代码尺寸,以及速度优化斚w做得非常C。主要面向的使用体是开发COM轻量U供|络下蝲的可视化控g的开发者?

6?GTK

参考网站:http://gtkmm.sourceforge.net/

GTK是一个大名鼎鼎的C的开源GUI库。在Linux世界中有Gnomeq样的杀手应用。而GTK是q个库的C++装版本?

?

?


|络通信

ACE

参考网站:http://www.c'>http://www.c'>http://www.c'>http://www.cs.wustl.edu/~schmidt/ACE.html

C+ +库的代表Q超重量U的|络通信开发框架。ACE自适配通信环境QAdaptive Communication EnvironmentQ是可以自由使用、开放源代码的面向对象框Ӟ在其中实C许多用于q发通信软g的核心模式。ACE提供了一l丰富的可复用C++ 包装外观QWrapper FacadeQ和框架lgQ可跨越多种q_完成通用的通信软gdQ其中包括:事g多\分离和事件处理器分派、信号处理、服务初始化、进E间通信、共享内存管理、消息\由、分布式服务动态(重)配置、ƈ发执行和同步Q等{?

StreamModule

参考网站:http://www.omnifarious.org/StrMod/'>http://www.omnifarious.org/StrMod/

设计用于化编写分布式E序的库。尝试着使得~写处理异步行ؓ的程序更ҎQ而不是用同步的外壛_起异步的本质?

SimpleSocket

参考网站:http://home.hetnet.nl/~lcbokkers/simsock.htm

q个cd让编写基于socket的客?服务器程序更加容易?

A Stream Socket API for C++

参考网站:http://www.pcs.cnu.edu/'>http://www.pcs.cnu.edu/~dgame/sockets/socketsC++/sockets.html

又一个对Socket的封装库?

XML

Xerces

参考网站:http://xml.apache.org/xerces-c/

Xerces-C++ 是一个非常健壮的XML解析器,它提供了验证Q以及SAX和DOM API。XML验证在文档类型定?Document Type DefinitionQDTD)斚w有很好的支持Qƈ且在2001q?2月增加了支持W3C XML Schema 的基本完整的开放标准?

XMLBooster

参考网站:http://www.xmlbooster.com/'>http://www.xmlbooster.com/

q个库通过产生特制的parser的办法极大的提高了XML解析的速度Qƈ且能够生相应的GUIE序来修改这个parser。在DOM和SAX两大LXML解析办法之外提供了另外一个可行的解决Ҏ?

Pull Parser

参考网站:http://www.extreme.indiana.edu/xgws/xsoap/xpp/'>http://www.extreme.indiana.edu/xgws/xsoap/xpp/

q个库采用pullҎ的parser。在每个SAX的parser底层都有一个pull的parserQ这个xpp把这层暴露出来直接给大家使用。在要充分考虑速度的时候值得试?

Xalan

参考网站:http://xml.apache.org/xalan-c/

Xalan是一个用于把XML文档转换为HTMLQ纯文本或者其他XMLcd文档的XSLT处理器?

CMarkup

参考网站:http://www.firstobject.com/xml.htm'>http://www.firstobject.com/xml.htm

q是一U用EDOM的XML解析器。在很多思\上面非常灉|实用。值得大家在DOM和SAX之外L一点灵感?

libxml++

http://libxmlplusplus.sourceforge.net/

libxml++是对著名的libxml XML解析器的C++装版本



U学计算

Blitz++

参考网站:http://www.oonumerics.org/blitz/'>http://www.oonumerics.org/blitz/

Blitz++ 是一个高效率的数D函数库Q它的设计目的是希望建立一套既具像C++ 一h便,同时又比Fortran速度更快的数D环境。通常Q用C++所写出的数值程序,?Fortran?0%左右Q因此Blitz++正是要改掉这个缺炏V方法是利用C++的template技术,E序执行甚至可以比Fortran更快?Blitz++目前仍在发展中,对于常见的SVDQFFTsQQMRES{常见的U性代数方法ƈ不提供,不过使用者可以很Ҏ地利用Blitz++所提供的函数来构徏?

POOMA

参考网站:http://www.c'>http://www.c'>http://www.c'>http://www.codesourcery.com/pooma/pooma

POOMA是一个免费的高性能的C++库,用于处理q行式科学计。POOMA的面向对象设计方便了快速的E序开发,对ƈ行机器进行了优化以达到最高的效率Q方便在工业和研I环境中使用?

MTL

参考网站:http://www.osl.iu.edu/research/mtl/'>http://www.osl.iu.edu/research/mtl/

Matrix Template Library(MTL)是一个高性能的泛型组件库Q提供了各种格式矩阵的大量线性代数方面的功能。在某些应用使用高性能~译器的情况下,比如Intel的编译器Q从产生的汇~代码可以看出其与手写几乎没有两L效能?

CGAL

参考网站:www.cgal.org

Computational Geometry Algorithms Library的目的是把在计算几何斚w的大部分重要的解x案和Ҏ以C++库的形式提供l工业和学术界的用户?



游戏开?

Audio/Video 3D C++ Programming Library

参考网站:http://www.galacticasoftware.com/products/av/'>http://www.galacticasoftware.com/products/av/

AV3D是一个跨q_Q高性能的C++库。主要的Ҏ是提供3D囑ŞQ声效支持(SB,以及S3MQ,控制接口Q键盘,鼠标和遥感)QXMS?

KlayGE

参考网站:http://home.g365.net/enginedev/

国内游戏开发高手自qC++开发的游戏引擎。KlayGE是一个开放源代码、跨q_的游戏引擎,q用Python作脚本语a。KlayGE在LGPL协议下发行。感谢龚敏敏先生Z国游戏开发事业所做出的A献?

OGRE

参考网站:http://www.ogre3d.org'>http://www.ogre3d.org

OGRE Q面向对象的囑Ş渲染引擎Q是用C++开发的Q用灵zȝ面向对象3D引擎。它的目的是让开发者能更方便和直接地开发基?Dg讑֤的应用程序或游戏。引擎中的类库对更底层的pȝ库(如:Direct3D和OpenGLQ的全部使用l节q行了抽象,q提供了Z现实世界对象的接口和其它cR?



U程

C++ Threads

参考网站:http://threads.sourceforge.net/

q个库的目标是给E序员提供易于用的c,q些c被l承以提供在Linux环境中很隄到的大量的线E方面的功能?

ZThreads

参考网站:http://zthread.sourceforge.net/

一个先q的面向对象Q跨q_的C++U程和同步库?



序列?

s11n

参考网站:http://s11n.net/

一个基于STL的C++库,用于序列化PODQSTL容器以及用户定义的类型?

Simple XML Persistence Library

参考网站:http://sxp.sourceforge.net/

q是一个把对象序列化ؓXML的轻量的C++库?



字符?

C++ Str Library

参考网站:http://www.utilitycode.com/str/'>http://www.utilitycode.com/str/

操作字符串和字符的库Q支持Windows和支持gcc的多U^台。提供高度优化的代码Qƈ且支持多U程环境和UnicodeQ同时还有正则表辑ּ的支持?

Common Text Transformation Library

参考网站:http://cttl.sourceforge.net/

q是一个解析和修改STL字符串的库。CTTL substringcd以用来比较,插入Q替换以及用EBNF的语法进行解析?

GRETA

参考网站:http://research.microsoft.com/projects/greta/

q是由微软研I的研Ih员开发的处理正则表达式的库。在型匚w的情况下有非怼U的表现?

l合

P::Classes

参考网站:http://pclasses.com/

一个高度可UL的C++应用E序框架。当前关注类型和U程安全的signal/slot机制Qi/opȝ包括Z插g的网l协议透明的i/o架构Q基于插件的应用E序消息日志框架Q访问sql数据库的cȝ{?

ACDK - Artefaktur Component Development Kit

参考网站:http://acdk.sourceforge.net/

q是一个^台无关的C++lg框架Q类gJava或?NET中的框架Q反机ӞU程QUnicodeQ废料收集,I/OQ网l,实用工具QXMLQ等{)Q以及对Java, Perl, Python, TCL, Lisp, COM ?CORBA的集成?

dlib C++ library

参考网站:http://www.c'>http://www.c'>http://www.c'>http://www.cis.ohio-state.edu/~kingd/dlib/

各种各样的类的一个综合。大整数QSocketQ线E,GUIQ容器类,以及览目录的API{等?

Chilkat C++ Libraries

参考网站:http://www.c'>http://www.c'>http://www.c'>http://www.chilkatsoft.com/cpp_libraries.asp

q是提供zipQe-mailQ编码,S/MIMEQXML{方面的库?

C++ Portable Types Library (PTypes)

参考网站:http://www.melikyan.com/ptypes/'>http://www.melikyan.com/ptypes/

q是STL的比较简单的替代品,以及可移植的多线E和|络库?

LFC

参考网站:http://lfc.sourceforge.net/

哦,q又是一个尝试提供一切的C++?



其他?

Loki

参考网站:http://www.moderncppdesign.com/'>http: //www.moderncppdesign.com/'>http://www.moderncppdesign.com/'>http://www.moderncppdesign.com/

哦,你可能抱怨我早该和Boost一起介l它Q一个实验性质的库。作者在loki中把C++模板的功能发挥到了极致。ƈ且尝试把cM设计模式q样思想层面的东襉K过库来提供。同时还提供了智能指针这h较实用的功能?

ATL

ATL(Active Template Library)是一l小巧、高效、灵zȝc,q些cMؓ创徏可互操作的COMlg提供了基本的设施?

FC++: The Functional C++ Library

q个库提供了一些函数式语言中才有的要素。属于用库来扩充语言的一个代表作。如果想要在OOP之外L另一分的乐趣Q可以去看看函数式程序设计的世界。大?Peter Norvig?"Teach Yourself Programming in Ten Years"一文中将函数式语a列ؓ臛_应当学习?cȝE语a之一?

FACT!

参考网站:http://www.kfa'>http://www.kfa-juelich.de/zam/FACT/start/index.html

另外一个实现函数式语言Ҏ的?

Crypto++

提供处理密码Q消息验证,单向hashQ公匙加密系l等功能的免费库?

q有很多非常Ȁ动h心或者是极其实用的C++库,限于我们的水q以及文章的幅不能包括q来。在对于q些已经包含q来的库的介l中Q由于ƈ不是每一个我们都使用q,所以难免有偏颇之处Q请读者见谅?



资源|站

正如我们可以通过计算机历史上的重要h物了解计机史的发展QC++相关人物的网站也可以使我们得到最有h值的参考与借鉴Q下面的人物我们认ؓ没有介绍的必要,只因下面的h物在C++领域的地位众所周知Q我们只相关的资源q行|列以供读者学习,他们有的工作于贝实验室Q有的工作于知名~译器厂商,有的在不断推q语a的标准化Q有的ؓ读者撰写了多部千古奇作......

Bjarne Stroustrup http://www.research.att.com/'>http://www.research.att.com/~bs/

Stanley B. Lippman

http: //blogs.msdn.com/slippman/(中文版http://www.zengyihome.net'>http: //www.zengyihome.net/slippman/index.htm'>http://www.zengyihome.net'>http://www.zengyihome.net/slippman/index.htm)

Scott Meyers http://www.aristeia.com/'>http://www.aristeia.com/

David Musser http://www.c'>http://www.c'>http://www.c'>http://www.cs.rpi.edu/~musser/

Bruce Eckel http://www.bruceeckel.com'>http://www.bruceeckel.com

Nicolai M. Josuttis http://www.josuttis.com/'>http://www.josuttis.com/

Herb Sutter http://www.gotw.ca/'>http://www.gotw.ca/

Andrei Alexandrescu http://www.moderncppdesign.com/'>http://www.moderncppdesign.com/'>http://www.moderncppdesign.com/'>http://www.moderncppdesign.com/



ivaneeo 2006-10-02 23:27 发表评论
]]>
fox-toolkit的基本类?/title><link>http://www.aygfsteel.com/ivanwan/archive/2006/10/01/73157.html</link><dc:creator>ivaneeo</dc:creator><author>ivaneeo</author><pubDate>Sun, 01 Oct 2006 13:14:00 GMT</pubDate><guid>http://www.aygfsteel.com/ivanwan/archive/2006/10/01/73157.html</guid><wfw:comment>http://www.aygfsteel.com/ivanwan/comments/73157.html</wfw:comment><comments>http://www.aygfsteel.com/ivanwan/archive/2006/10/01/73157.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/ivanwan/comments/commentRss/73157.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/ivanwan/services/trackbacks/73157.html</trackback:ping><description><![CDATA[#include <fxdefs.h> <br /><br />           /*********************************  Typedefs  **********************************/<br />    338 <br />    339 // Forward declarations<br />    340 class                          FXObject;<br />    341 class                          FXStream;<br />    342 class                          FXString;<br />    343 <br />    344 <br />    345 // Streamable types; these are fixed size!<br />    346 typedef char                   FXchar;<br />    347 typedef unsigned char          FXuchar;<br />    348 typedef FXuchar                FXbool;<br />    349 typedef unsigned short         FXushort;<br />    350 typedef short                  FXshort;<br />    351 typedef unsigned int           FXuint;<br />    352 typedef int                    FXint;<br />    353 typedef float                  FXfloat;<br />    354 typedef double                 FXdouble;<br />    355 typedef FXObject              *FXObjectPtr;<br /><br /><br />     31 #ifndef TRUE-<br />     32 #define TRUE 1-<br />     33 #endif-<br />     34 #ifndef FALSE-<br />     35 #define FALSE 0-<br />     36 #endif-<br />      <br />     40 #ifndef NULL-<br />     41 #define NULL 0-<br />     42 #endif<br /><br />     #define FXMAX(a,b) (((a)>(b))?(a):(b))<br />     #define FXMIN(a,b) (((a)>(b))?(b):(a))<br />     #define FXABS(val) (((val)>=0)?(val):-(val))<br />     /// Clamp value x to range [lo..hi]-<br />    #define FXCLAMP(lo,x,hi) ((x)<(lo)?(lo):((x)>(hi)?(hi):(x)))<br /><br /><img src ="http://www.aygfsteel.com/ivanwan/aggbug/73157.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/ivanwan/" target="_blank">ivaneeo</a> 2006-10-01 21:14 <a href="http://www.aygfsteel.com/ivanwan/archive/2006/10/01/73157.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">¬</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ׯ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">׺</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɳ</a>| <a href="http://" target="_blank">γ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʻ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ž</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ǡ</a>| <a href="http://" target="_blank">ֵ</a>| <a href="http://" target="_blank">׼</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank">¤</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">Ӱ</a>| <a href="http://" target="_blank">̶</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ϳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ï</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>