日期:2014-05-17  浏览次数:21315 次

void* pvoid 如何转string
通过指针找到对应地址的值,最终获得string值!!
指针

------解决方案--------------------
void *p=...;
             IntPtr ip=new IntPtr(p);
             string str=Marshal.PtrToStringBSTR(ip);
 
------解决方案--------------------
1、修改工程配置

工程中默认的配置是不支持代码的非安全性的,如果我们想使用指针就要修改这个默认的设置。否则我们在编译的时候就会出现“不安全代码只会在使用/unsafe编译的情况下出现”。具体的设置如下图所示。
2、定义非安全代码
在C#中如果想使用指针就需要将代码定义为unsafe。unsafe是C#中的一个关键字,我们可以将一个类、一个方法、代码块或者字段标记为unsafe。

public unsafe void Test()
        {
            int i=10;
            int k;
            //定义指针
            int *j;
            //给指针赋值
            j=&i;
            //取的指针的值            
            k=*j+1;
            MessageBox.Show(k.ToString());
        }