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

8 ビュー (過去 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;

採用された回答

Philip Borghesani
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
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.
euphy
euphy 2013 年 5 月 21 日
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?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeC Shared Library Integration についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by