Is it possible to have the OSS API functions print to a memory buffer and not to a window or to a file?

Yes. One way is to set the world.asn1prnt function pointer of the instance of ossGlobal structure to your personal printing function which outputs to a memory buffer of your choice:

...
ossinit(&world, _primary_control_table);
world.asn1prnt = OSSTraceFunc;
...

int OSSTraceFunc(FILE *pFile, const char *format, ...)
{

#define nBufLen 1024
    va_list args;
    char szBuf[nBufLen];
    int nRC;

    memset(szBuf, '\0', nBufLen);
    va_start(args, format);
    nRC = vsprintf(szBuf, format, args);
    va_end(args);
    fputs(szBuf, pFile);
    fflush(pFile);
    return nRC;
}

If your platform does not support FILE pointers, you may also try passing a NULL value for the stream argument (first argument). The other way is to use ossSetUserPrint() or ossSetUserVprint() passing your printing function pointer and/or the stream pointer.


The samples included with some of the Knowledge Center answers are meant for your general understanding of the OSS products. Different versions of the products might produce slightly different outputs. Consult the products documentation and samples for the most up-to-date products information and code examples.



Contact Support
contact Our office hours
24 hours/day, 7 days/week

  • Phone: 1-888-OSS-2761 (USA and Canada)
  • Phone: 1-732-302-9669 (International)
  • Fax: 1-732-302-0023
  • Email: support@oss.com
Free Trial
download

Test drive the OSS Nokalva ASN.1, 4G and XML Tools now! Your trial includes complete software, documentation, sample programs, free 24x7 technical support and more.




Learn ASN.1
Learn ASN.1

Our expert personnel can help you learn ASN.1!

We offer 4-day ASN.1 courses at our headquarters or your premises.