我正在使用MATLAB从外部库调用函数来控制设备, 我遇到的问题是具有特定函数的参数未正确转换且奇怪的字符出现在它的位置。当在Matlab中调用库函数时出现奇怪/奇怪的字符
例如,调用:
ERRCODE = calllib ('MEDAQLib','ExecSCmd',1,int8('Laser_On'));
其中ExecSCmd
参数在libfunctionview
被定义为ulong,int8Ptr
现在,当我登录的命令发生这种情况
ExecSCmd,回车,instanceHandle = 1,sensorCommand ='Laser_On''£〜'' MESensor :: SensorCommand,Enter,this = 0x30c07b50,S_Command = Laser_On'“£〜d ERRORMSG :: Error_SetText集,留言:-14 (ERR_UNKNOWN_SENSOR_COMMAND):Laser_On'“£〜d
相反的Laser_On'“£~ð
它的意思是显示一个干净Laser_On
像它与其他功能呢。它变得更加怪异,有时称它为随机工作,但这样做的次数很少。
当使用不同的计算机,使用相同的Matlab版本,相同的编译器,相同的库,但操作系统不同时,会出现类似的问题。 使用的编译器是Windows SDK 7.1,Matlab版本2012b。
为什么这些奇怪的字符出现在参数中?
很好解释!我现在知道了。我现在没有机会对此进行测试,但这可能会起作用。只有一件事,我认为函数输入仍然需要Matlab上的整数格式,因此:'int8(char ['Laser_On',0])'应该这样做。如果这个工作很快就会确认。 – DonD
非常感谢您的反馈。如果你发现只有'int8'可以工作,你可以编辑我的答案。 –