mclTermina​teApplicat​ion() destroys rest of C-application

Hello! I have a question about calling mclTerminateApplication() function. I have compiled Matlab C shared library. For library calls I have created my own wrapper functions. Then I initialize Matlab library with calls to mclInitializeApplication() and my library init function, then perform Matlab calculation, then terminate library and next call to mclTerminateApplication().
After this point still I have to do some job in C application. but it hangs up. printf() does not print, getch() never returns.
Documentation states clearly that Matlab function call are prohibited after mclTerminateApplication(). How about regular C code? Is it allowed? Is it absolutely necessary to call mclTerminateApplication() at the very end of C-program?
Thanks in advance

Answers (1)

AFAIK, you should be able to run generic C code after mclTerminateApplication(). Have you tried setting a breakpoint in your code after the call to mclTerminateApplication to make sure that mclTerminateApplication returns?

3 Comments

Yes, I did. As I mentioned I do printf() and getch(). I can step over mclTerminateApplication(), I can step over printf() - and this time printf() does not produce output to console. Next I call getch() and it never returns.
Strange thing is that I have similar application, which works well after mclTerminateApplication(), but this one - does not. How to trace the root cause?
rrlagic: Do you think that the MCR could have somehow hijacked stdout/stdin? Sorry, I don't have much to offer here - perhaps you should try contacting MathWorks Tech Support?

Sign in to comment.

Categories

Products

Asked:

on 24 Jul 2012

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!