您现在的位置: 爱51代码网 >> 范文 >> 文章正文
如何调用vc写的dlll直接返回指针数组

如何调用vc写的dlll直接返回指针数组

extern "C" unsigned char * ReadHid(void)  {     unsigned char * r;     //……     return r; }

ref byte 当成数组处理,网上有很多。
这种类型还不算烦的。

byte* pb=ReadHid();
然后就随便你处理了
字节数组:byte b=*pb; pb++;
字符串:string str=Marshal.PtrToString(new IntPtr((void*)pb);
整数数组:int i=*(int*)pb; pb++;
结构数组:都可以

在类前面加上unsafe是可以了,
byte* pb = (byte*)ReadHid();
但从这个unsafe单词里看是不安全的。

因为要写一个c#的demo给客户调用dll。能否就以我这个dll原函数,高手能否帮忙写个以IntPtr调用我这个函数的例子呢

还是用了unsafe指针的,测试程序也正常了,目前没发现什么问题,用pb[n]直接访问任一字节很方便。

楼上说的不够详细还是没使用上,转来转去麻烦:
转字符串的,又不知道怎么再转回每个字节。
读整数的:冒似转出来一个整数,我要的是字节数组,而不是数组,就算是数组,又要改正在使用的dll原型unsigned char ×改为int *指针。
转结构体的:可能还用不上它。

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    lotus数据列表文档个数如何实时统
    lotus代理中LS如何将字符串保存到
    在lotus BS系统里怎样方便实现统
    undefined reference timer_crea
    linux文件/usr/lib破坏了,还原后
    linux上运行system函数时,print
    Failed to open eth0
    android手机无法与eclipse或电脑
    C/C++洗牌算法源代码
    servlet技术实现用户名唯一的验证
    undefined reference timer_crea
    Failed to open eth0
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    sharepoint 2010 获取用户信息Us
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    Chartlet饼图提示文字重叠了
    gridview如何返回droplistdo
    未能加载文件活程序集“Acce
    DataGridView绑定IList<T>实
    vb.net关于control.tag的问题
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |