CSkin博客

标题: C#如何通过IntPtr获得缓存内容? [打印本页]

作者: zzllvlv    时间: 2017-6-13 22:10
标题: C#如何通过IntPtr获得缓存内容?
我通过调用GDI32.DLL的GetGlyphOutline()函数,获得了一块字符位图缓存buffer,这个buffer是以字节方式存储的,由IntPtr类型的值lpBuf调用。但是我在代码中调时:
BYTE btCode = lpBuf[int i +int j];
显示IntPtr不能使用[]索引方式,向各位大神请教一下怎么在C#中通过这个IntPtr值逐一访问缓存中的各个字节?

作者: HJL    时间: 2017-6-14 09:12
试一下
var data = new System.Collections.Generic.List<byte>();
     var off = 0;

     while( true )
     {
         var ch = Marshal.ReadByte( ipText, off++ );

        if( ch == 0 )
        {
            break;
        }

        data.Add( ch );
    }
其中的ipText 就是 IntPtr ,data就是一个byte数组。

作者: zzllvlv    时间: 2017-6-14 21:25
我试了一下,可以用,谢谢大神!




欢迎光临 CSkin博客 (http://bbs.cskin.net/) Powered by Discuz! X3.2