为了账号安全,请及时绑定邮箱和手机立即绑定

C#如何封装这样的一个C++结构体

C#如何封装这样的一个C++结构体

智慧大石 2018-10-10 05:06:28
有这么一个C++结构体typedef struct BY_BITMAP{    sint32 biWidth;      //图像宽度    sint32 biHeight;     //图像高度    sint32 biBitCount;   //颜色深度    sint32 bfSize;       //位图缓冲区长度    sint32 BytesPerLine; //一行位图数据所占的字节数    char **ScanLine;    //行索引    int *buffer;       //图像缓冲区}BY_BITMAP;如何封装成C#结构体?
查看完整描述

2 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

您可以试试名叫“PInvoke Signature Toolkit”的工具,微软出品。

下面是这个工具转换的结果:

[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public struct BY_BITMAP {
    
    /// int
    public int biWidth;
    
    /// int
    public int biHeight;
    
    /// int
    public int biBitCount;
    
    /// int
    public int bfSize;
    
    /// int
    public int BytesPerLine;
    
    /// char**
    public System.IntPtr ScanLine;
    
    /// int*
    public System.IntPtr buffer;
}

不知道你的sint32具体是什么类型,我暂且用int代替。


查看完整回答
反对 回复 2018-10-24
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

楼上的属性应该改下吧 ,他要封装 所以应该这么写吧

public sealed struct BY_BITMAP

{

}


查看完整回答
反对 回复 2018-10-24
  • 2 回答
  • 0 关注
  • 471 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信