problem about using calllib why I can't show the value on the window of console
2 views (last 30 days)
Show older comments
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;
0 Comments
Accepted Answer
Philip Borghesani
on 20 May 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 Comments
Walter Roberson
on 21 May 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.
More Answers (0)
See Also
Categories
Find more on C Shared Library Integration in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!