亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#解析char型指針所指向的內容(實例解析)

 更新時間:2024年03月01日 10:36:43   作者:澄鑫  
在c++代碼中定義了一個功能函數(shù),這個功能函數(shù)會將計算的結果寫入一個字符串型的數(shù)組中output,然后c#會調用c++導出的dll中的接口函數(shù),然后獲取這個output并解析成string類型,本文通過實例解析C#?char型指針所指向的內容,感興趣的朋友一起看看吧

指針的概念

指針是一個特殊的變量,它里面存儲的數(shù)值被解釋成為內存里的一個地址。要搞清一個指針需要搞清指針的四方面的內容:指針的類型,指針所指向的類型,指針的值或者叫指針所指向的內存區(qū),還有指針本身所占據(jù)的內存區(qū)。讓我們分別說明。

先聲明幾個指針放著做例子:

例一:

int *ptr;
char *ptr;
int **ptr;
int (*ptr)[3];
int *(*ptr)[4];

正文

1、背景

在c++代碼中定義了一個功能函數(shù),這個功能函數(shù)會將計算的結果寫入一個字符串型的數(shù)組中output,然后c#會調用c++導出的dll中的接口函數(shù),然后獲取這個output并解析成string類型。

2、實例

c++:

CPPDLL_API int Function( char*& output)

c#:

[DllImport(@"Project1.dll", EntryPoint = "Function",CharSet = CharSet.Auto)]
public static extern int Function(ref IntPtr output);
IntPtr ptr = IntPtr.Zero;
int isok = Function(ref ptr);
// -> Unicode
byte[] bytes = System.Text.Encoding.Unicode.GetBytes(Marshal.PtrToStringUni(ptr));
// -> UTF8
string dec = System.Text.Encoding.UTF8.GetString(bytes);

錯誤代碼:

string dec = Marshal.PtrToStringAnsi(ptr);

得到的dec是亂碼,查詢發(fā)現(xiàn)是因為內存編碼是UTF8,Marshal不支持UTF轉換,所以必須先轉成Unicode再轉成UTF8。

到此這篇關于C#解析char型指針所指向的內容的文章就介紹到這了,更多相關C# char指針內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C#中的值傳遞和引用傳遞詳細解析

    C#中的值傳遞和引用傳遞詳細解析

    本篇文章主要是對C#中的引用傳遞與值傳遞進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • C# 使用GDI繪制雷達圖的實例

    C# 使用GDI繪制雷達圖的實例

    這篇文章主要介紹了C# 使用GDI繪制雷達圖,本文通過一段實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • C#中把任意類型的泛型集合轉換成SQLXML數(shù)據(jù)格式的實例

    C#中把任意類型的泛型集合轉換成SQLXML數(shù)據(jù)格式的實例

    本文主要分享了C#中把任意類型的泛型集合轉換成SQLXML數(shù)據(jù)格式的實例代碼。具有很好的參考價值,需要的朋友可以看下
    2016-12-12
  • C# 如何實現(xiàn)Token

    C# 如何實現(xiàn)Token

    這篇文章主要介紹了C# 如何實現(xiàn)Token,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C#調用百度翻譯API實現(xiàn)一個翻譯功能

    C#調用百度翻譯API實現(xiàn)一個翻譯功能

    一直喜歡用Google Translate API進行在線翻譯,但是服務越來越慢這篇文章,所以只能換一個了,主要給大家介紹了關于C#調用百度翻譯API實現(xiàn)一個翻譯功能的相關資料,需要的朋友可以參考下
    2021-06-06
  • C#使用Json.Net對JSON與對象的序列化與反序列化

    C#使用Json.Net對JSON與對象的序列化與反序列化

    這篇文章介紹了Json.Net對JSON與對象的序列化與反序列化,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#中Linq延遲查詢的例子

    C#中Linq延遲查詢的例子

    這篇文章主要介紹了C#中Linq延遲查詢的例子,本文用一個實例來講解延遲查詢的使用,需要的朋友可以參考下
    2015-06-06
  • C#獲取系統(tǒng)當前IE版本號

    C#獲取系統(tǒng)當前IE版本號

    這篇文章主要為大家詳細介紹了C#獲取系統(tǒng)當前IE版本號,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 詳解C#中的字符串拼接@ $

    詳解C#中的字符串拼接@ $

    這篇文章主要介紹了C#中的字符串拼接@,$的相關知識,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • C#實現(xiàn)給圖片加水印的方法

    C#實現(xiàn)給圖片加水印的方法

    這篇文章主要介紹了C#實現(xiàn)給圖片加水印的方法,結合完整實例形式分析了C#常見的圖片水印操作相關實現(xiàn)技巧,需要的朋友可以參考下
    2016-02-02

最新評論