DcmFileFormat as shared library function parameter

All other questions regarding DCMTK

Moderator: Moderator Team

Post Reply
Posts: 329
Joined: Mon, 2009-02-23, 19:57

DcmFileFormat as shared library function parameter

#1 Post by martinrame » Mon, 2016-01-11, 20:00

Hi, I'm passing a DcmFileFormat instance to a shared libary function, but aparently it is getting corrupted after calling getDataset() from inside the function.

Here's the caller:

Code: Select all

void* lhandle = dlopen("./libmylibrary.so", RTLD_NOW);

if (lhandle) {
  typedef void (* processDataset)(DcmFileFormat *);
  processDataset lprocessDset = (processDataset)dlsym(lhandle, "processDataset");
  if (!lprocessDset) {
  dlclose(lhandle); // if I call dlclose(..) my app hangs
And here's my shared library function definition:

Code: Select all

extern "C" {
  void processDataset(DcmFileFormat *ff)
    OFString lModality;
    DcmDataset * dataset = ff->getDataset(); // here ff is getting corrupted
    dataset->findAndGetOFString(DCM_Modality, lModality);
    dataset->putAndInsertOFStringArray(DCM_AccessionNumber, '123');
Do you see anything wrong in my code?.

Thanks in advance.

Post Reply

Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 1 guest