problem about using calllib why I can't show the value on the window of console

10 visualizaciones (últimos 30 días)
when I ran the program, I can't get the result I expect. the screen can't show the value of these three varibles. this is my C++ function and DynaConfig is a struct
STRUCT_TRANS_C double trans_dynaconfig(DynaConfig *config)
{
cout<<config->AeroEnable<<endl
<<config->ArmJnt0<<endl
<<config->GraspEnable<<endl;
double a;
a=config->AeroEnable;
system("pause");
return a;
}
this is the m code
clc;clear;
loadlibrary('struct_trans','struct_trans.h');
DynaConfig.AeroEnable = 23.6;
DynaConfig.ArmJnt0 = 52;
DynaConfig.GraspEnable = 56.3;
y = calllib('struct_trans','trans_dynaconfig',DynaConfig);
unloadlibrary struct_trans;

Respuesta aceptada

Philip Borghesani
Philip Borghesani el 20 de Mayo de 2013
Calling cout from a mex file or dll does not work on all versions of MATLAB and operating systems. The best solution is to use mexPrintf to output to the MATLAB command window. It is possible that starting MATLAB with the -nodesktop option will give you your output but this is probably not desirable for other reasons.
  3 comentarios
Walter Roberson
Walter Roberson el 21 de Mayo de 2013
The shortcut could in theory include the -nodesktop option, but you would have to configure it to do that. When -nodesktop is not used then the command window and editor and whatever are created and stdin and stdout are created internally in the program in ways that are not connected to cin and cout. When -nodesktop is used then no command window etc. are created and stdin and stdout are connected to cin and cout.
euphy
euphy el 21 de Mayo de 2013
thank you so much !
But I still don't know how to start matlab with the nodesktop option, can you show me the operation steps?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre C Shared Library Integration en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by