作者: zzllvlv
查看: 1810|回复: 2
打印 上一主题 下一主题

[求助] C#如何通过IntPtr获得缓存内容?

[复制链接]
跳转到指定楼层
楼主
zzllvlv 发表于 2017-6-13 22:10:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看: 1810|回复: 2
我通过调用GDI32.DLL的GetGlyphOutline()函数,获得了一块字符位图缓存buffer,这个buffer是以字节方式存储的,由IntPtr类型的值lpBuf调用。但是我在代码中调时:
BYTE btCode = lpBuf[int i +int j];
显示IntPtr不能使用[]索引方式,向各位大神请教一下怎么在C#中通过这个IntPtr值逐一访问缓存中的各个字节?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播
回复 论坛版权

使用道具 举报

沙发
HJL 发表于 2017-6-14 09:12:35 | 只看该作者
试一下
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:26 | 只看该作者
我试了一下,可以用,谢谢大神!
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-4-20 09:52, Processed in 0.544435 second(s), 28 queries , Gzip On.

快速回复 返回顶部 返回列表