请专家答个有难度的问题
定义了个结构
public struct LogFont
{
public long lfHeight;
public long lfWidth;
public byte[] lfFaceName ;
}
想给public byte[] lfFaceName ; 定义长度,怎么定义?
struct里不能写new ....
------解决方案--------------------不会C#,蒙的,呵呵~~
------解决方案--------------------改成类好了,反正区别也不大
------解决方案--------------------[StructLayout(LayoutKind.Sequential)]
public struct LogFont
{
public long lfHeight;
public long lfWidth;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1024)]
public byte[] lfFaceName ;
}
------解决方案--------------------顶一下,有用啊.
------解决方案--------------------StructLayout(LayoutKind.Sequential)]
public struct LogFont
{
public long lfHeight;
public long lfWidth;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
public byte[] lfFaceName ;
}
------解决方案--------------------mark
------解决方案--------------------To:ouyang4683
StructLayout:控制Structure语句块的元素在内存中的排列方式,以及当这些元素被传递给外部DLL时,运行库排列这些元素的方式。
MarshalAs:可以参考下面的连接
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfSystemRuntimeInteropServicesMarshalAsAttributeClassTopic.asp
------解决方案--------------------学习
------解决方案--------------------有什么用??
------解决方案--------------------学习
------解决方案--------------------LogFont a;
a.lfFaceName=new byte[32];
这不就好了??