sice5921 2015-07-13 05:21 采纳率: 100%
浏览 2494
已采纳

C#处理C++的的返回值Cbitmap*生成图像在控件中显示

Cbitmap* userGetBitmap(HWND hwnd,int nBMPWIDTH,int nBMPHEIGHT);
hwnd需要显示当前图像的窗口句柄
nBMPWIDTH 需要生成的图像的像素宽度

nBMPHEIGHT需要生成的图像的像素高度

        C++的DLL中有如上函数,请问,用C#如何接招。如何用C#要根据上面的函数生成一个图片并在控件中显示。
  • 写回答

2条回答

  • Trent1985 博客专家认证 2015-07-15 05:09
    关注

    Cbitmap* userGetBitmap(HWND hwnd,int nBMPWIDTH,int nBMPHEIGHT);
    对于你这个接口:
    1,Cbitmap这个是你在C++里定义的,你需要在C#里重新定义一个结构体跟C++的对应;
    2,HWND这个可以看一下在C++中他占用几个字节,然后再C#中寻找对应;或者直接在C++中使用,不要再接口中出现;
    3,int就不用说了。
    给你个参考:
    //c++:HANDLE(void ) ---- c#:System.IntPtr

    //c++:Byte(unsigned char) ---- c#:System.Byte

    //c++:SHORT(short) ---- c#:System.Int16

    //c++:WORD(unsigned short) ---- c#:System.UInt16

    //c++:INT(int) ---- c#:System.Int16

    //c++:INT(int) ---- c#:System.Int32

    //c++:UINT(unsigned int) ---- c#:System.UInt16

    //c++:UINT(unsigned int) ---- c#:System.UInt32

    //c++:LONG(long) ---- c#:System.Int32

    //c++:ULONG(unsigned long) ---- c#:System.UInt32

    //c++:DWORD(unsigned long) ---- c#:System.UInt32

    //c++:DECIMAL ---- c#:System.Decimal

    //c++:BOOL(long) ---- c#:System.Boolean

    //c++:CHAR(char) ---- c#:System.Char

    //c++:LPSTR(char *) ---- c#:System.String

    //c++:LPWSTR(wchar_t *) ---- c#:System.String

    //c++:LPCSTR(const char *) ---- c#:System.String

    //c++:LPCWSTR(const wchar_t *) ---- c#:System.String

    //c++:PCAHR(char *) ---- c#:System.String

    //c++:BSTR ---- c#:System.String

    //c++:FLOAT(float) ---- c#:System.Single

    //c++:DOUBLE(double) ---- c#:System.Double

    //c++:VARIANT ---- c#:System.Object

    //c++:PBYTE(byte *) ---- c#:System.Byte[]

    //c++:BSTR ---- c#:StringBuilder

    //c++:LPCTSTR ---- c#:StringBuilder

    //c++:LPCTSTR ---- c#:string

    //c++:LPTSTR ---- c#:[MarshalAs(UnmanagedType.LPTStr)] string

    //c++:LPTSTR 输出变量名 ---- c#:StringBuilder 输出变量名

    //c++:LPCWSTR ---- c#:IntPtr

    //c++:BOOL ---- c#:bool

    //c++:HMODULE ---- c#:IntPtr

    //c++:HINSTANCE ---- c#:IntPtr

    //c++:结构体 ---- c#:public struct 结构体{};

    //c++:结构体 *
    变量名 ---- c#:out 变量名

    //C#中提前申明一个结构体实例化后的变量名

    //c++:结构体 &变量名 ---- c#:ref 结构体 变量名

    //c++:WORD ---- c#:ushort

    //c++:DWORD ---- c#:uint

    //c++:DWORD ---- c#:int

    //c++:UCHAR ---- c#:int

    //c++:UCHAR ---- c#:byte

    //c++:UCHAR* ---- c#:string

    //c++:UCHAR* ---- c#:IntPtr

    //c++:GUID ---- c#:Guid

    //c++:Handle ---- c#:IntPtr

    //c++:HWND ---- c#:IntPtr

    //c++:DWORD ---- c#:int

    //c++:COLORREF ---- c#:uint

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向