Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 618505
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T18:33:11+00:00 2026-05-13T18:33:11+00:00

I think modular is the correct term; to give a basic example if I

  • 0

I think modular is the correct term; to give a basic example if I was to create an encryption application which you could type in like notepad, and then save encrypted, however under the save menu there are options to save for the encryption methods that you have plugins for like AES, Blowfish etc, and also allow new methods to be coded into a plugin and distributed without having to recompile the main application.

I’ve found a couple of explanations online but I’m mostly struggling to get my head around how you would get new options to appear under the save menu that originally didn’t exist (this maybe more a Windows application question), if you get what I mean.

Seeing as modular development seems to be very platform specific I’ll stick with Windows examples for now and hopefully try and scope out after that.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T18:33:12+00:00Added an answer on May 13, 2026 at 6:33 pm

    Assuming Win32api, you do something like this:

    • Have a plugins directory for your application.
    • On load of your application, list all files in that directory
    • Any with the extension DLL, you load with the LoadLibrary call.
    • You get some information from the dll that tells you what the plugin’s name is
    • You create menus/ui changes appropriately.

    Now, when you create your dll, you have a standard set of functions common to all plugins. Or, a standard set of functions per type of plugin and a function that identifies this with your application. This way, you can test each plugin is of the correct form and call the methods in the dynamic library on the fly without having to compile / link them in to your main program.

    The routine is broadly similar on any platform that supports shared libraries (DLLs, so’s etc).

    As a code example for what I mean, you might have a plugin.h file like this:

    #ifndef PLUGIN_H_
    #define PLUGIN_H_
    
    #define PLUGIN_CRYPTO   1
    #define PLUGIN_FORMAT   2
    #define PLUGIN_EXAMPLE  3
    
    #endif 
    

    Then you #include this header in both your main program and any plugins you create. In plugin-dll.cpp (example again) you have a method like this:

    int GetPluginType()
    {
        return PLUGIN_CRYPTO;
    }
    

    Then you can switch between the results of this function and assign function pointers to the correct routines you want to run.

    More info for implenentation:

    • GetProcAddress() – find the name of a function in a library. Example with function pointers included.
    • FreeLibary – to release something opened with LoadLibrary.
    • FindFirstFileEx, FindNextFile and CloseFind for directory searching.

    Just because, Linux (POSIX) equivalents:

    • dlopen – Dynamic library open.
    • dlsym – Equivalent to GetProcAddress – get function ptr to symbol name.
    • dlclose – Equivalent to FreeLibrary
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 372k
  • Answers 372k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Mindscape has a free one. There is one on CodeProject.… May 14, 2026 at 7:27 pm
  • Editorial Team
    Editorial Team added an answer You don't need the MAC address May 14, 2026 at 7:27 pm
  • Editorial Team
    Editorial Team added an answer Disable the button once it has been clicked: $(".menu_clickable").click(function() {… May 14, 2026 at 7:27 pm

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.