作者OPliao (OPman)
看板C_Sharp
标题[问题] Marshal相关问题
时间Mon Mar 5 16:17:12 2018
大家好
最近在练习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;
}
大概是这样吗?
有错麻烦指正 感谢各位!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 202.39.226.12
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1520237835.A.67D.html
1F:→ OPliao: 有任何建议到可以~ 03/06 08:10
2F:→ OPliao: *都可以 03/06 08:12