WEB开发网
开发学院软件开发C语言 c#编程指南(十) 平台调用P-INVOKE完全掌握, 字符串... 阅读

c#编程指南(十) 平台调用P-INVOKE完全掌握, 字符串和指针

 2010-09-30 22:46:12 来源:WEB开发网   
核心提示: 1[DllImport("TestDll",EntryPoint="GetStringReturn")]2publicstaticexternIntPtrGetStringReturnByBytes();34[DllImport("TestDll

 1     [DllImport("TestDll", EntryPoint = "GetStringReturn")]
 2     public static extern IntPtr GetStringReturnByBytes();
 3 
 4     [DllImport("TestDll", EntryPoint = "GetStringReturn")]
 5     [return:MarshalAs(UnmanagedType.LPStr)]
 6     public static extern string GetStringReturnByMarshal();
 7 
 8     [DllImport("TestDll", EntryPoint = "GetStringReturnW")]
 9     public static extern IntPtr GetStringReturnByBytesW();
10 
11     [DllImport("TestDll", EntryPoint = "GetStringReturnW")]
12     [return: MarshalAs(UnmanagedType.LPWStr)]
13     public static extern string GetStringReturnByMarshalW();
14 
15 
16     public void Run()
17     {     //Marshal.PtrToStringAuto(GetStringReturnByBytes()); 自动判断类型不错。
18        Console.WriteLine(Marshal.PtrToStringAnsi(GetStringReturnByBytes()));
19       Console.WriteLine(GetStringReturnByMarshal());
20       Console.WriteLine(Marshal.PtrToStringUni(GetStringReturnByBytesW()));
21       Console.WriteLine(GetStringReturnByMarshalW());
22        }

第三:字符串指针作为输入输出参数时,因为要求有固定的容量,所以这里使用的是StringBuilder,大家仔细看了,当然也有byte[]版本。这个看大家喜欢那个版本就是用那个.

上一页  1 2 3 4  下一页

Tags:编程 指南 平台

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接