Compiled Matlab exe hangs when calling my Mex function

18 vues (au cours des 30 derniers jours)
Kyung Ho Park
Kyung Ho Park le 20 Juin 2012
Hi, I have a Matlab GUI which uses a Mex file I created. Everything works fine when executing it in Matlab. I then created an exe file using deploytool, and the build process completes successfully, launching my GUI. However, when the code arrives at the first call to one of my mex functions, it just hangs there.
In order to check if my Mex code was causing the trouble, I recompiled the mex DLL with the whole mexfunction body commented out, so the mex function should just return after doing nothing. Even so, the compiled matlab exe hangs when calling this empty mex function.
Anyone knows what is causing the trouble?
And why is typing this message so difficult? The cursor pauses almost every character that I type ?
  1 commentaire
Jan
Jan le 25 Juin 2012
The keyboard latency in this forum reduces the usability of the interface dramatically for some users, see http://www.mathworks.com/matlabcentral/answers/5560-do-you-suffer-from-keyboard-latency-in-this-forum . Please send another enhancement request to files@mathworks.com .

Connectez-vous pour commenter.

Réponses (1)

Kaustubha Govind
Kaustubha Govind le 20 Juin 2012
There is perhaps an error message that is causing the application to hang. Have you tried compiling your application without suppressing the command/shell window? Use the "Console Application" option instead of Windows standalone. When you run the thus compiled application, you should see a command window open in the background. See if there is any error displayed there?
  5 commentaires
Kyung Ho Park
Kyung Ho Park le 5 Juil 2012
Modifié(e) : Kyung Ho Park le 5 Juil 2012
Hi. I finally got everything to work. I'm a little bit embarrassed to say that it were all my mistakes. At first, in my C++ code used by mex, I failed to disable all parts related to the Matlab engine. This must be done, because compiled applications can not use the engine, of course. So, I added a new build configuration in Visual C++ that defines a preprocessor macro that disables these code sections and includes. My second mistake was then that in this new build configuration, I renamed the output name from xxx.mexw32 file to xxx_deployed.mexw32, to have both versions in same directory. Of course, I forgot that the Matlab code was looking for the xxx file... So I moved the _deployed version to another dir, renamed it back to xxx.mexw32 and included it back in the deploytool, et voila, it worked, as one would expect. My apologies for "bugging" you with this... & thank you for your help!
Kaustubha Govind
Kaustubha Govind le 6 Juil 2012
Glad you worked that out. Thanks for posting your solution!

Connectez-vous pour commenter.

Catégories

En savoir plus sur MATLAB Compiler dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by