[问题] Marshal相关问题

楼主: OPliao (OPman)   2018-03-05 16:17:12
大家好
最近在练习Marshal的部分
目前知道Marshal是用在Managed与Unmanaged传送资料时的型别转换
也找了些范例来练习:
(http://vito-note.blogspot.tw/2012/05/unmanaged.html)
现在我有个题目 是要marshal C++ structure
例如:
typedef struct {
DWORD DWord1;
LPTSTR Lptstr;
} VarTestBufData_DEF;
我有几个疑问
1.marshal是用在传送资料时做型别转换用途的,那这题目要我直接marshal 不懂题目意

2.上面网址中有个转换表 像是DWORD → UInt32, LPTSTR → String或StringBuilder
这题目是要做类似这样的事吗? 那struct要使用StructLayoutAttribute?
以下是我参考范例试着做:
[StructLayout(LayoutKind.Sequential)]
public struct VarTestBufData_DEF
{
[MarshalAs(UnmanagedType.UInt32)]
public DWORD DWord1;
[MarshalAs(UnmanagedType.String)]
public LPTSTR Lptstr;
}
大概是这样吗?
有错麻烦指正 感谢各位!
楼主: OPliao (OPman)   2018-03-06 08:10:00
有任何建议到可以~*都可以
作者: lightyen (lightyen)   2018-03-06 08:41:00

Links booklink

Contact Us: admin [ a t ] ucptt.com