Jump to content
Tuts 4 You

A 'Big picure' question about an app with plugins.


Recommended Posts

I have an idea for an app, but ultimately I would like to make it possible for people to add functionality to it by means of plugins. It would be like Olly in that respect, except not quite that ambitious. What I would like is for people to be able to add this functionality non-language specific, ie. Iif someone wants to use Delphi or .NET, but I want to program the skeleton in C++, that should be allowed.

I have done a lot of thinking about this but I wanted to get another's optinion on the best way to structure the framework before I took the plunge and started coding. I would imagine that provding an API is probably the best bet, but I wanted to make sure I didn't miss something.

Does anyone have any suggestions?

Link to comment

For a first version of program - don't make SDK or plugin support. You don't know if people will actually want to make plugins and what they will want to do with them, so you can't design APIs yet.

Examples - CFF Explorer has support for extensions but I have yet to see one useful extension for it. Plugins for SAE (Simple Assembly Explorer) are being made only by SAE author..

As for APIs and framework - either go for totally script-based plugins (eg. LUA, Python) or make SDK for MS C/C++ compiler. If people want, they'll be able to port that SDK to other languages.

Link to comment

if you want to make a commercial program then I suggest consider

what kao said

if not then try to make it with your main idea

if you want to build the program with plugins then do it

the most important thing here if you feel ok with your concepts and ideas

then proceed and do it

just consider this

time factor

and a lot of code

the people are going to use the plugins and make plugins if they

have easy examples like ollydbg the Olly_Plugin_Development_Kit

inside have a source code how to make a plugin in

different languages like visual basic, delphi,masm,net etc..

Link to comment

I worked on a project with such capabilities, I can tell you this, you have to really know how you want your framework to be used..the bulk of the work will be how you implement the capabilities of your framework, know your plugin author audience, and follow a certain standard i.e Will you be providing functions to do certain string or other data manipulation? or should that be up to the plugin authors to implement? or can they choose both? If so, then you will have to write function or wrappers that internally call your own data manipulations. If you decide to provide scripting capabilities, you will have to be sure not to be prejudice and provide about the same amount of capabilities to both statically compiled and interpreted languages, and believe me, youll be tempted because you can pretty much do anything with the scripting languages which become alittle challenging with say C/C++.. anyways, its just important to understand how your framework can and will be used, set those limitations in the beginning so you dont end up having to make drastic changes in the future and end up having to break backward compatibility..

  • Like 1
Link to comment

Here is a great article covering plugins for C++


The tutorial is in five parts.

I also agree totally with Kao. The first version of your application should focus on being a working piece of software. Plugins and extensions should be something you extend into afterward.

Edited by atom0s
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...