getting null's when calling across dll's
getting null's when calling across dll's
something strange...
i've got a database pointer to an open drawing in a class. when i go to open the modelspace id from a function within the class that contains the database member, everything works fine, but when i try doing it elsewhere things fail.
here's a contrived example of the problem i'm having. both cdwg and csomeotherclass are in seperate dll's.
here's the code that works:
cdwg:

penmodelspace()
{
oddbblocktablerecordptr blockptr = this->m_databaseptr->getmodelspaceid().openobject(oddb::kforread);
}
here's the code that doesn't work:
csomeotherclass:

penms()
{
// the cdwg m_dwg member is already open
// if i call m_dwg.openmodelspace() here it works fine
// this line doesn't work!
oddbblocktablerecordptr blockptr = m_dwg.m_databaseptr->getmodelspaceid().openobject(oddb::kforread);
(blockptr's m_pobject is null here)
}
another clue:
odrxclass* pclass = oddbline::desc();
when this line is in cdwg:

penmodelspace it returns a valid pointer to static.
when it is in csomeotherclass:

penms it returns null.
everything compiles and links fine. any ideas what i'm doing wrong?
thanks,
erle
are your dlls statically linked with dwgdirect? if so it will not work because of multiple instances of dwgdirect static data. to have single instance of dwgdirect in your project you need to use dll version of dwgdirect.
sergey slezkin
i'm using msvc++ .net 2002 version 7.0, statically linked as there are no dll's in that download.
will i be able to link to dll's in the vc6 download's? if not, can the devteam provide dll's for 2002?
thanks,
erle
hi sergey,
i've restructured my code's design to limit dwgdirect to a single dll. everything is running smoothly now, thanks for the help.
cheers,
erle