Click here to Skip to main content
15,904,023 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
Questionthe anti-static dilemma Pin
Cyrilix19-Jun-07 15:13
Cyrilix19-Jun-07 15:13 
AnswerRe: the anti-static dilemma Pin
Mark Salsbery19-Jun-07 15:23
Mark Salsbery19-Jun-07 15:23 
AnswerRe: the anti-static dilemma Pin
Cedric Moonen19-Jun-07 21:00
Cedric Moonen19-Jun-07 21:00 
GeneralRe: the anti-static dilemma Pin
Cyrilix20-Jun-07 3:13
Cyrilix20-Jun-07 3:13 
GeneralRe: the anti-static dilemma Pin
Matthew Faithfull20-Jun-07 3:29
Matthew Faithfull20-Jun-07 3:29 
Questionwhy the data would change with no trace? Pin
kcynic19-Jun-07 12:57
kcynic19-Jun-07 12:57 
QuestionRe: why the data would change with no trace? Pin
Mark Salsbery19-Jun-07 14:26
Mark Salsbery19-Jun-07 14:26 
AnswerRe: why the data would change with no trace? Pin
kcynic20-Jun-07 0:24
kcynic20-Jun-07 0:24 
AnswerRe: why the data would change with no trace? Pin
Roger Stoltz20-Jun-07 0:49
Roger Stoltz20-Jun-07 0:49 
GeneralRe: why the data would change with no trace? Pin
kcynic20-Jun-07 3:02
kcynic20-Jun-07 3:02 
GeneralRe: why the data would change with no trace? Pin
Roger Stoltz20-Jun-07 4:01
Roger Stoltz20-Jun-07 4:01 
GeneralRe: why the data would change with no trace? Pin
kcynic21-Jun-07 0:59
kcynic21-Jun-07 0:59 
QuestionDetecting Remote Desktop Events Pin
Akin Ocal19-Jun-07 12:02
Akin Ocal19-Jun-07 12:02 
AnswerRe: Detecting Remote Desktop Events Pin
Randor 19-Jun-07 13:06
professional Randor 19-Jun-07 13:06 
QuestionScott Meyer and C++ Pin
C_Zealot19-Jun-07 12:01
C_Zealot19-Jun-07 12:01 
AnswerRe: Scott Meyer and C++ Pin
George L. Jackson19-Jun-07 12:19
George L. Jackson19-Jun-07 12:19 
Questionswitching between two windows using glut Pin
moonraker92819-Jun-07 9:48
moonraker92819-Jun-07 9:48 
QuestionRe: switching between two windows using glut Pin
Hamid_RT20-Jun-07 8:47
Hamid_RT20-Jun-07 8:47 
AnswerRe: switching between two windows using glut Pin
moonraker92820-Jun-07 9:50
moonraker92820-Jun-07 9:50 
Questionxloper struct Pin
A7Zulu19-Jun-07 9:37
A7Zulu19-Jun-07 9:37 
AnswerRe: xloper struct Pin
David Crow19-Jun-07 10:21
David Crow19-Jun-07 10:21 
GeneralRe: xloper struct Pin
A7Zulu19-Jun-07 10:47
A7Zulu19-Jun-07 10:47 
Questionreturning an pointer to an array to excel from C++ Pin
A7Zulu19-Jun-07 9:35
A7Zulu19-Jun-07 9:35 
AnswerRe: returning an pointer to an array to excel from C++ Pin
Sameerkumar Namdeo19-Jun-07 17:06
Sameerkumar Namdeo19-Jun-07 17:06 
QuestionDynamically Instantiating Class Defined In DLL Pin
Peter Saint19-Jun-07 8:13
Peter Saint19-Jun-07 8:13 
Hi,

I would like my VC++ client application to dynamically instantiate a class defined in a DLL knowing only (1) a DLL file name and (2) the name of a class defined in the DLL. Is this possible without using .NET?

Here's what I am currently doing...

An exported function in a DLL returns an instance of the class MyDerivedClass (which is a class derived from MyBaseClass):

extern "C" <br />
{<br />
    __declspec(dllexport) MyBaseClass* getMyBaseClass()<br />
    {<br />
        AFX_MANAGE_STATE(AfxGetStaticModuleState())<br />
        MyBaseClass* answer = (MyBaseClass*)new MyDerivedClass();<br />
        return (answer);<br />
    }<br />
}


My client application loads the DLL at the appropriate time and calls the known, exported function to retrieve a pointer to a newly instantiated MyBaseClass object:

// Retrieve the name of the DLL to be loaded from the config file<br />
CString libraryFileName = ...<br />
<br />
// Load the library using the configured file name.<br />
HINSTANCE library = ::LoadLibrary(libraryFileName);<br />
<br />
// Obtain a reference to the exported function found in the library.<br />
typedef MyBaseClass* (*ExternalFunction)();<br />
ExternalFunction function = (ExternalFunction)::GetProcAddress(library, "getMyBaseClass");<br />
<br />
// Call the exported function in the library to instantiate the 'MyDerivedClass' object.<br />
MyBaseClass* aBaseClass = function();


This approach works fine but I think it would be cleaner for developers of the DLL to only have to define their MyBaseClass-derived class in the DLL and not have to implement the 'C' function to return it.

Any and all help appreciated!

Peter

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.