Click here to Skip to main content
15,905,614 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionHow to get the y coordinate of a PolyBezier spline Pin
1-Feb-02 3:56
suss1-Feb-02 3:56 
GeneraladdObject() Pin
1-Feb-02 3:42
suss1-Feb-02 3:42 
GeneralRe: addObject() Pin
Jon Hulatt1-Feb-02 4:09
Jon Hulatt1-Feb-02 4:09 
GeneralProblem with menu/activex control event Pin
Roger Allen1-Feb-02 3:28
Roger Allen1-Feb-02 3:28 
GeneralRe: Problem with menu/activex control event Pin
Joaquín M López Muñoz1-Feb-02 3:37
Joaquín M López Muñoz1-Feb-02 3:37 
GeneralRe: Problem with menu/activex control event Pin
Roger Allen1-Feb-02 4:38
Roger Allen1-Feb-02 4:38 
GeneralRe: Problem with menu/activex control event Pin
Joaquín M López Muñoz1-Feb-02 5:33
Joaquín M López Muñoz1-Feb-02 5:33 
GeneralC++ objects in global memory... Pin
Chris Losinger1-Feb-02 2:26
professionalChris Losinger1-Feb-02 2:26 
I need to export C++ objects out of a DLL. The objects don't have to be used outside of the DLL, they just have to be able to be passed back in to the DLL for use inside - essentially, they are containers for the DLL's state.

These objects would never be shared between threads or processes.

I was thinking this might be a way to do it:

typedef HGLOBAL HMYOBJ;

// exported DLL function
HMYOBJ GetDLLObject()
{
  HGLOBAL hObj = GlobalAlloc(GPTR, sizeof(CMyClass));

  // initialize it
  CMyClass *pClass = (CMyClass *)hObj;
  pClass->Init();

  return (HMYOBJ)hObj;
}

...

// another exported function
BOOL UseDLLObject(HMYOBJ hObj)
{
  CMyClass *pClass = (CMyClass *)hObj;
  return pClass->DoSomething();
}

void DestroyDLLObject(HMYOBJ hObj)
{
  CMyClass *pClass = (CMyClass *)hObj;
  pClass->CleanUp();
  GlobalFree(hObj);
}
...

// here's how the caller would use the DLL
HMYOBJ hObj = GetDLLObject();
BOOL ok = UseDLLObject(hObj);
DestroyDLLObject(hObj);


Does that seem reasonable? It does seem to work, I just wanted someone else to look at it.

-c



Smaller Animals Software, Inc.

GeneralRe: C++ objects in global memory... Pin
Joaquín M López Muñoz1-Feb-02 3:05
Joaquín M López Muñoz1-Feb-02 3:05 
GeneralWinsock2 Pin
31-Jan-02 23:43
suss31-Jan-02 23:43 
GeneralRe: Winsock2 Pin
Peter Weyzen1-Feb-02 12:41
Peter Weyzen1-Feb-02 12:41 
GeneralRe: Winsock2 Pin
2-Feb-02 23:02
suss2-Feb-02 23:02 
GeneralDownloading and booting WinCE on a LapTop Pin
Gert Boddaert31-Jan-02 23:14
Gert Boddaert31-Jan-02 23:14 
GeneralRe: Downloading and booting WinCE on a LapTop Pin
Gert Boddaert1-Feb-02 5:45
Gert Boddaert1-Feb-02 5:45 
GeneralpItem->CreateNewItem(clsid); and Ms Word Pin
Braulio Dez31-Jan-02 23:09
Braulio Dez31-Jan-02 23:09 
QuestionOLE automation how does it work??? Pin
Gérald Mercet31-Jan-02 22:18
Gérald Mercet31-Jan-02 22:18 
AnswerRe: OLE automation how does it work??? Pin
Braulio Dez31-Jan-02 23:19
Braulio Dez31-Jan-02 23:19 
GeneralCArchive and CompoundFile Pin
wangyiming31-Jan-02 22:04
wangyiming31-Jan-02 22:04 
GeneralRe: CArchive and CompoundFile Pin
wangyiming1-Feb-02 15:11
wangyiming1-Feb-02 15:11 
Generaltrouble Pin
31-Jan-02 21:31
suss31-Jan-02 21:31 
GeneralRe: trouble Pin
Johan Rosengren22-Jun-04 8:42
Johan Rosengren22-Jun-04 8:42 
Questiondoes Windows registry record the bootup and shutdown time? Pin
DengJW31-Jan-02 21:01
DengJW31-Jan-02 21:01 
GeneralSTL - Newbie... Pin
Bernhard31-Jan-02 20:34
Bernhard31-Jan-02 20:34 
GeneralRe: STL - Newbie... Pin
Joaquín M López Muñoz31-Jan-02 23:41
Joaquín M López Muñoz31-Jan-02 23:41 
GeneralRe: STL - Newbie... Pin
Bernhard31-Jan-02 23:51
Bernhard31-Jan-02 23:51 

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.