Array.Copy  
  

解决方案 »

  1.   

    using System.Runtime.InteropServices;//...
    byte[] vBytes = { 0x12, 0x34, 0x56, 0x78 };
    IntPtr vBytesAddress = Marshal.UnsafeAddrOfPinnedArrayElement(vBytes, 0); // 数组第一个元素的地址
    int vInt = Marshal.ReadInt32(vBytesAddress); // 该地址的整数值
    Text = vInt.ToString("X"); // 输出用
      

  2.   

    foreach(char c in chars)
    {
           int val = Convert.ToInt32(c);
    }
      

  3.   

    C# 中的Char是两个字节char[] vChars = { '\x1234', '\x5678'};IntPtr vCharsAddress = Marshal.UnsafeAddrOfPinnedArrayElement(vChars, 0);
    int vInt = Marshal.ReadInt32(vCharsAddress);
    Text = vInt.ToString("X");
      

  4.   

    //将char数组转换成int值
    转换规则?
      

  5.   

    我是c++里的char数组传递给c#的请问怎么转换啊
      

  6.   

    我是楼主
    我在c++里写了个很简单的函数
    void CTestDllApp::GetChars(char* pData)
    {
    *(DWORD*)pData = 10;
    }c#里这样写的
    [DllImport(@"C:\Inetpub\wwwroot\Test2005\Bin\TestDll.dll", CharSet = CharSet.Ansi)]
    public static extern void GetChars(ref char[] pData);char[] pData = new char[10];
    GetChars(ref pData);但是在用的时候却提示尝试写如受保护的内存麻烦帮忙看看
      

  7.   

    char 数组直接用string 就可以了
      

  8.   

    这里不能用string因为我的char数组里存的是特殊的字符串
      

  9.   

    //测试如下代码[DllImport(@"C:\Inetpub\wwwroot\Test2005\Bin\TestDll.dll", CharSet = CharSet.Ansi)]
    public static extern void GetChars(IntPtr pData);private void button1_Click(object sender, EventArgs e)
    {
        byte[] vBuffer = new byte[4];
        IntPtr vBufferAddress = Marshal.UnsafeAddrOfPinnedArrayElement(vBuffer, 0);
        GetChars(vBufferAddress);
        int vInt = Marshal.ReadInt32(vBufferAddress);
    }