problem about using calllib why I can't show the value on the window of console
9 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Philip Borghesani
2013-5-20
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 个评论
Walter Roberson
2013-5-21
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 C Shared Library Integration 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!