Libpointer枚举结构类将所有数值型字段数据类型转换为“双”。

4视图(30天)
你好,
我想使用loadlibrary()与libpointer()使用一个C DLL。这个DLL的主要功能有一个输入/输出参数,是枚举类型“TD1”(使用C类型定义()功能在DLL的头文件),这是一个C结构包含各种各样的各种数值数据类型,例如“uint8”、“uint16’,‘uint32’,‘int32’,“双”。我遇到的问题是,当我试图创建一个libpointer Matlab正确定义的结构的字段名称/类型,创建了libpointer,但所有的字段结构的“价值”属性libpointer转换为类型“双”(“uint8”的除外)之前,我甚至可以通过DLL函数。
有谁知道一个变通方法/解决方案吗?
我必须使用Matlab的墨西哥人功能而不是loadlibrary吗?
提前谢谢,
内森

答案(1)

菲利普Borghesani
菲利普Borghesani 2011年3月3日
loadlibrary / libstruct 方面在头文件中定义的数据类型。
你看到的是值时自动转换为从双回到MATLAB。这样做是由于双历来在MATLAB的标准数据类型。
中使用的数据类型结构由MATLAB可以验证通过检查生成的MATLAB文件loadlibrary mfilename选项和通过使用structsize libstruct对象的方法。
解决你的问题的实际原因我建议发布一个新的问题和一些示例代码和结构定义和你错误。
2的评论
内森
内森 2011年3月4日
另外,每次我编辑文件包含loadlibrary命令mfilename选项来更改的名字原型文件将存储,我必须关闭并重新启动Matlab在执行之前为了让它正常工作(不是生成原型文件否则)。这是一个已知的问题,还是我有什么地方做的不对了吗?

登录置评。

类别

找到更多的在数据类型转换帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!