GithubHelp home page GithubHelp logo

dbremner / cxxreflect Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 2.0 1.51 MB

mirror of codeplex cxxreflect

License: Boost Software License 1.0

C++ 99.03% Assembly 0.49% C 0.01% Batchfile 0.04% PowerShell 0.42%

cxxreflect's Introduction

//                            Copyright James P. McNellis 2011 - 2013.                            //
//                   Distributed under the Boost Software License, Version 1.0.                   //
//     (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)    //

A brief explanation of the top level directories in the project structure:

[*] cxxreflect:  This folder contains the CxxReflect libraries.  To improve compilation performance
    and to improve modularity, the library is split into four parts:  core, metadata, reflection,
    and windows_runtime.  Each of these parts builds on the previous parts.  When all four have been
    built, the 'cxxreflect' project aggregates their contents into a single static library.

    The cxxreflect_core library contains a bunch of utilities that are used by other projects in the
    library.  Most of these are standalone or depend only on the C++ Standard Library and can be
    used elsewhere without too much trouble.  This library also contains the configuration for the
    CxxReflect libraries and a system for isolating nonstandard platform dependencies (like those
    introduced by calling Win32 or WinRT APIs).

    The cxxreflect_metadata library contains facilities for loading CLI assemblies and metadata
    files and for presenting their contents through a somewhat relational database API.  This
    library also contains facilities for parsing signature blobs.  This library is designed to
    provide a low level of abstraction, i.e., it provides direct access to the contents of the file
    in as friendly a manner as possible.

    The cxxreflect_reflection library wraps the cxxreflect_metadata library in an API similar to the
    .NET reflection API, defining types that represent assemblies, types, properties, methods, etc.
    
    The cxxreflect_windows_runtime library contains functionality to integrate CxxReflect into a
    packaged Windows Runtime application.  It can enumerate the metadata files in the package, load
    them, and provide Windows Runtime-specific reflection information.  It also contains the
    implementation of the runtime inspection, invocation, and instantiation functionality that
    enables dynamic instantiation and invocation and type inspection.

    Note that the first three of these libraries are written in (mostly) portable C++ and should be
    easy to adapt to compilers and platforms other than Visual C++ and Windows.  The windows_runtime
    project necessarily relies on platform details and is nonportable.

[*] winrt_components:  This folder contains Windows Runtime components that wrap and extend the
    CxxReflect libraries.  These are designed to make usage of CxxReflect from a Windows Runtime
    application much easier, through a model that is accessible from any language that supports
    Windows Runtime development.

[*] tests:  This folder contains a suite of test projects.

[*] utilities:  This folder contains utilities that are used to build the CxxReflect projects.

cxxreflect's People

Contributors

jamesmcnellis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

mediabuff micahl

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.