Question: As we know, Eclipse is a good framework that supports plugins based application development. I am using c++ for coding and would like to learn how to build a framework that support the plugins development. One good example is the Notepad++ that supports plugins. Is there a good book or resource that I can refer to.

Thank you

Answer: 
I think that it's kind of an over kill answer (it has good points). Maybe you should first read about interpreters:
<http://www.vincehuston.org/dp/interpreter.html>

You then should decided the boundaries of your plugins and script language, maybe you should start reading about the spirit module in boost.
You can consider just loading shared objects (linux) dynamically, with predefined function hooks...

```
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
int main(int argc, char **argv) {
    void *handle;
    double (*cosine)(double);
    char *error;
    handle = dlopen ("libm.so", RTLD_LAZY);
    if (!handle) {
        fprintf (stderr, "%s\n", dlerror());
        exit(1);
    }
    dlerror();    /* Clear any existing error */
    cosine = dlsym(handle, "cos");
    if ((error = dlerror()) != NULL)  {
        fprintf (stderr, "%s\n", error);
        exit(1);
    }
    printf ("%f\n", (*cosine)(2.0));
    dlclose(handle);
    return 0;
}

```

The above was stolen from [dlopen(3) Linux page](http://linux.die.net/man/3/dlopen), but it illustrates an example, where `libm.so` can be the module, and `cos`, could be the function name that your hooking to. Obviously this is far from a complete module / plugin framework.... but its a start =)