Click here to Skip to main content
15,887,135 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionHow do I dock panes stacked on top of each other? Pin
Mattias G1-Aug-10 3:11
Mattias G1-Aug-10 3:11 
AnswerRe: How do I dock panes stacked on top of each other? Pin
Mattias G1-Aug-10 3:15
Mattias G1-Aug-10 3:15 
GeneralRe: How do I dock panes stacked on top of each other? Pin
Iain Clarke, Warrior Programmer3-Aug-10 2:12
Iain Clarke, Warrior Programmer3-Aug-10 2:12 
QuestionPlugin Abstract Interface idea Pin
saiyuk6=731-Jul-10 23:23
saiyuk6=731-Jul-10 23:23 
AnswerRe: Plugin Abstract Interface idea PinPopular
Moak1-Aug-10 0:55
Moak1-Aug-10 0:55 
GeneralRe: Plugin Abstract Interface idea Pin
saiyuk6=71-Aug-10 8:47
saiyuk6=71-Aug-10 8:47 
GeneralRe: Plugin Abstract Interface idea Pin
Aescleal1-Aug-10 11:40
Aescleal1-Aug-10 11:40 
AnswerRe: Plugin Abstract Interface idea Pin
Aescleal1-Aug-10 6:58
Aescleal1-Aug-10 6:58 
First of all why are you bothering to cook your own smart pointer class for this lot? Use std::unique_ptr or std::shared_ptr. Then when you've done that you can use the smart pointer to return objects from factory functions so you don't have to worry about pointers-to-pointers and all the attendent exception safety issues.

For a plugin I can't see any mention of how you'd dynamically load the plugin - without that all you've got is a baroque implementation of the factory method design pattern. When you want to create an object based on a plugin you need a way to find the executable with the plugin (which will have to be loaded from a configuration file), load it and then create an instance of the class you want created. One way of doing that is to map class name against the name of a shared library which has a known entry point:

std::shared_ptr<plugin_interface> create_object()
{
    return std::shared_ptr<plugin_implementation>( new plugin_implementation );
}


that gets called after the plugin is loaded.

One thing to consider is that you'll have to use the same compiler AND build settings to create the plugins and host program. Otherwise strangeness with different runtime library implementations will sink you. Provided you keep the compiler the same you can use whatever types you like in the interface.

Cheers,

Ash
GeneralRe: Plugin Abstract Interface idea Pin
saiyuk6=71-Aug-10 8:34
saiyuk6=71-Aug-10 8:34 
GeneralRe: Plugin Abstract Interface idea Pin
Aescleal1-Aug-10 11:24
Aescleal1-Aug-10 11:24 
AnswerRe: Plugin Abstract Interface idea Pin
KarstenK1-Aug-10 20:51
mveKarstenK1-Aug-10 20:51 
GeneralRe: Plugin Abstract Interface idea Pin
saiyuk6=71-Aug-10 22:43
saiyuk6=71-Aug-10 22:43 
QuestionChild Dialog Pin
john563231-Jul-10 0:31
john563231-Jul-10 0:31 
AnswerRe: Child Dialog Pin
Cool_Dev31-Jul-10 0:54
Cool_Dev31-Jul-10 0:54 
AnswerRe: Child Dialog Pin
Richard MacCutchan31-Jul-10 0:55
mveRichard MacCutchan31-Jul-10 0:55 
GeneralRe: Child Dialog Pin
Cool_Dev31-Jul-10 1:11
Cool_Dev31-Jul-10 1:11 
GeneralRe: Child Dialog Pin
Richard MacCutchan31-Jul-10 1:57
mveRichard MacCutchan31-Jul-10 1:57 
GeneralRe: Child Dialog Pin
Cool_Dev31-Jul-10 2:06
Cool_Dev31-Jul-10 2:06 
GeneralRe: Child Dialog Pin
Richard MacCutchan31-Jul-10 3:06
mveRichard MacCutchan31-Jul-10 3:06 
GeneralRe: Child Dialog Pin
Gary R. Wheeler31-Jul-10 10:25
Gary R. Wheeler31-Jul-10 10:25 
GeneralRe: Child Dialog Pin
Richard MacCutchan31-Jul-10 21:23
mveRichard MacCutchan31-Jul-10 21:23 
GeneralRe: Child Dialog Pin
Gary R. Wheeler31-Jul-10 23:43
Gary R. Wheeler31-Jul-10 23:43 
AnswerRe: Child Dialog Pin
Sauro Viti31-Jul-10 22:25
professionalSauro Viti31-Jul-10 22:25 
QuestionBalloon notification in Vista Pin
rahul.kulshreshtha30-Jul-10 20:38
rahul.kulshreshtha30-Jul-10 20:38 
Questionhow does this macro work? Pin
Amrit Kshetri30-Jul-10 16:06
Amrit Kshetri30-Jul-10 16:06 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.