zoukankan      html  css  js  c++  java
  • pinvoke 数据交互笔记

    intptr to array string

    string[]  _outputStrArray=null;

         int channelCount = 0;///返回数组大小
                IntPtr Channels = new IntPtr();
              
                int reslut = NativeMethods.getChannels(Global.Handle, nru, ref Channels, ref channelCount);
                if (reslut == 0) //将指针数据转换为string 数组
                {
                    IntPtr[] OutPointers = new IntPtr[channelCount];
                    Marshal.Copy(Channels, OutPointers, 0, channelCount);
                    _outputStrArray = new string[channelCount];
                    for (int i = 0; i < channelCount; i++)
                    {
                        _outputStrArray[i] = Marshal.PtrToStringAnsi(OutPointers[i]);
                    }
                }

    结构体数组指针

    定义结构体

     public struct out_TMitObjIdKVPair
        {

    ...

    ...

    ..

    }

    IntPtr timitobjs = new IntPtr();

     int count = 0;

     int result = NativeMethods.getSubObjs(Global.Handle, par, ref timitobjs, ref count);
                if (result == 0)
                {
                    for (int i = 0; i < count; i++)
                    {
                        out_TMitObjIdKVPair q = (out_TMitObjIdKVPair)Marshal.PtrToStructure((IntPtr)(timitobjs.ToInt32() + i * Marshal.SizeOf(typeof(out_TMitObjIdKVPair))), typeof(out_TMitObjIdKVPair));

    }

    }

  • 相关阅读:
    OnWndMsg处理功能
    SpringMVC Ajax返回的请求json 的方式来解决在中国字符串乱码问题
    【Shell剧本练习】得出的结论是当前用户
    C++指针和引用简介
    HDU 3126 Nova [2009 Asia Wuhan Regional Contest Online]
    工作过程的编译器
    ubuntu selinux
    Maven创建工程 WEB
    Weblogic集群
    Dubbo
  • 原文地址:https://www.cnblogs.com/Noproblem/p/3232135.html
Copyright © 2011-2022 走看看