Libpointer枚举结构类将所有数值型字段数据类型转换为“双”。
4视图(30天)
显示旧的评论
你好,
我想使用loadlibrary()与libpointer()使用一个C DLL。这个DLL的主要功能有一个输入/输出参数,是枚举类型“TD1”(使用C类型定义()功能在DLL的头文件),这是一个C结构包含各种各样的各种数值数据类型,例如“uint8”、“uint16’,‘uint32’,‘int32’,“双”。我遇到的问题是,当我试图创建一个libpointer Matlab正确定义的结构的字段名称/类型,创建了libpointer,但所有的字段结构的“价值”属性libpointer转换为类型“双”(“uint8”的除外)之前,我甚至可以通过DLL函数。
有谁知道一个变通方法/解决方案吗?
我必须使用Matlab的墨西哥人功能而不是loadlibrary吗?
提前谢谢,
内森
0评论
答案(1)
菲利普Borghesani
2011年3月3日
loadlibrary / libstruct
方面在头文件中定义的数据类型。
你看到的是值时自动转换为从双回到MATLAB。这样做是由于双历来在MATLAB的标准数据类型。
中使用的数据类型结构由MATLAB可以验证通过检查生成的MATLAB文件loadlibrary mfilename选项和通过使用structsize libstruct对象的方法。
解决你的问题的实际原因我建议发布一个新的问题和一些示例代码和结构定义和你错误。