What dll should be deployed for application software?

What dll should be deployed for application software?

Nick T.'s picture

The application software we developed is installed on customers' machine. Our software uses IPP for some image processing routines. Now we got error message when the application software is started, which says no dll found. If we copy all IPP dlls to the executable folder of the application software, the error is gone, but we don't really want to do so because of the large size of all dlls. So we are wondering how do we know the minimun number of dlls that are necessary to put on the machine on which our application software is installed? And who are these IPP dlls exactly?

Right now, we are only using functions from ippi.h; And 3 dlls are already put in the application software folder: ippcore-7.0.dll, ippi-7.0.dll, and libiomp5md.dll, they are at the same location as the executable.

I apologize that my previous thread is similar to this. I guess I understand more when I keep digging.

Any thoughts, comments are highly appreciated.--Nick

PS:

I am also pasting our IPP code here:

void ResizeImage(char * pSource, long srcWidth, long srcHeight, char * pDestination, long dstWidth, long dstHeight)
{
    IppiSize size  = {srcWidth, srcHeight};
    IppiRect srect = {0, 0, srcWidth, srcHeight};
    IppiRect drect = {0, 0, dstWidth, dstHeight};

    double Xscale = static_cast<double>(dstWidth) / static_cast<double>(srcWidth);
    double Yscale = static_cast<double>(dstHeight) / static_cast<double>(srcHeight);

    int nChannel  = 1;    

    int INTERPOLATIONMODE = IPPI_INTER_CUBIC2P_CATMULLROM;

     /* interploation options:
09           IPPI_INTER_NN||IPPI_INTER_LINEAR|| IPPI_INTER_CUBIC
10           IPPI_INTER_CUBIC2P_BSPLINE||IPPI_INTER_CUBIC2P_CATMULLROM||PPI_INTER_CUBIC2P_B05C03
11           IPPI_INTER_SUPER||IPPI_INTER_LANCZOS */
    char * buf;
    int bufSize;

    // calculation of work buffer size
    ippiResizeGetBufSize( srect, drect, nChannel, INTERPOLATIONMODE, &bufSize );
    //ippiResizeGetBufSize( srect, drect, 1, IPPI_INTER_CUBIC2P_CATMULLROM, &bufsize );

    // memory allocate
     buf = (char*)malloc( bufSize );

    IppStatus status = ippStsErr;

    // function call
    if( NULL != buf )
        status = ippiResizeSqrPixel_16u_C1R((Ipp16u*)pSource, size, srcWidth*sizeof(Ipp16u), srect, (Ipp16u*)pDestination, dstWidth*sizeof(Ipp16u), drect, Xscale, Yscale, 0, 0, INTERPOLATIONMODE, (Ipp8u*)buf );
    
}

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Gennady Fedorov (Intel)'s picture

In that case you can try to create your owner custom dll which would contains only needed functions from IPP. The size of custom dll would be very small and you can easy to distribute this dll with your application. You can find the example how to create the custom dll into IPP examples and / or IPP Articles.

Sergey Kostrov's picture

>>...we are wondering how do we know the minimun number of dlls that are necessary to put on the machine on which our application
>>software is installed? And who are these IPP dlls exactly?
>>...
>>...when the application software is started, which says no dll found...

Was it an error message "No DLL found for waterfall procedure" or something else? If Yes, please take a look at a similar thread:

Forum topic: Waterfall issue again on a deployed machine
Forum web-link: http://software.intel.com/en-us/forums/topic/339742

Login to leave a comment.