最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#解析char型指針?biāo)赶虻膬?nèi)容(實例解析)

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

指針的概念

指針是一個特殊的變量,它里面存儲的數(shù)值被解釋成為內(nèi)存里的一個地址。要搞清一個指針需要搞清指針的四方面的內(nèi)容:指針的類型,指針?biāo)赶虻念愋停羔樀闹祷蛘呓兄羔標(biāo)赶虻膬?nèi)存區(qū),還有指針本身所占據(jù)的內(nèi)存區(qū)。讓我們分別說明。

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

例一:

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

正文

1、背景

在c++代碼中定義了一個功能函數(shù),這個功能函數(shù)會將計算的結(jié)果寫入一個字符串型的數(shù)組中output,然后c#會調(diào)用c++導(dǎo)出的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)是因為內(nèi)存編碼是UTF8,Marshal不支持UTF轉(zhuǎn)換,所以必須先轉(zhuǎn)成Unicode再轉(zhuǎn)成UTF8。

到此這篇關(guān)于C#解析char型指針?biāo)赶虻膬?nèi)容的文章就介紹到這了,更多相關(guān)C# char指針內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# TextBox控件實現(xiàn)只能輸入數(shù)字的方法

    C# TextBox控件實現(xiàn)只能輸入數(shù)字的方法

    這篇文章主要介紹了C# TextBox控件實現(xiàn)只能輸入數(shù)字的方法,本文使用TextBox的keypress事件實現(xiàn)這個需求,需要的朋友可以參考下
    2015-06-06
  • 深入委托與多播委托的詳解

    深入委托與多播委托的詳解

    本篇文章是對委托與多播委托進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • DevExpress中GridControl列轉(zhuǎn)義的實現(xiàn)方法

    DevExpress中GridControl列轉(zhuǎn)義的實現(xiàn)方法

    這篇文章主要介紹了DevExpress中GridControl列轉(zhuǎn)義的實現(xiàn)方法,在項目開發(fā)中有一定的實用價值,需要的朋友可以參考下
    2014-08-08
  • C# 使用Tcp/Udp協(xié)議的示例代碼

    C# 使用Tcp/Udp協(xié)議的示例代碼

    這篇文章主要介紹了C# 使用Tcp/Udp協(xié)議的示例,文中代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • C#中深拷貝和淺拷貝的介紹與用法

    C#中深拷貝和淺拷貝的介紹與用法

    本文詳細(xì)講解了C#中深拷貝和淺拷貝的介紹與用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C#判斷當(dāng)前程序是否通過管理員運(yùn)行的方法

    C#判斷當(dāng)前程序是否通過管理員運(yùn)行的方法

    這篇文章主要介紹了C#判斷當(dāng)前程序是否通過管理員運(yùn)行的方法,可通過非常簡單的系統(tǒng)函數(shù)調(diào)用實現(xiàn)對當(dāng)前程序是否通過管理員運(yùn)行進(jìn)行判定,是非常實用的技巧,需要的朋友可以參考下
    2014-11-11
  • C#排序算法的比較分析

    C#排序算法的比較分析

    這篇文章主要介紹了C#排序算法的比較,實例分析幾種比較常見的算法,并對其時間復(fù)雜度與穩(wěn)定性進(jìn)行了詳細(xì)的分析,需要的朋友可以參考下
    2014-11-11
  • Unity UGUI的InputField輸入框組件使用詳解

    Unity UGUI的InputField輸入框組件使用詳解

    這篇文章主要為大家介紹了Unity UGUI的InputField輸入框組件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • C#使用集合實現(xiàn)二叉查找樹

    C#使用集合實現(xiàn)二叉查找樹

    這篇文章介紹了C#使用集合實現(xiàn)二叉查找樹的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • 使用C#實現(xiàn)插入各種表格到Word文檔

    使用C#實現(xiàn)插入各種表格到Word文檔

    在許多企業(yè)應(yīng)用場景中,Word 文檔依舊是最常用的信息呈現(xiàn)與內(nèi)容輸出格式,下面將介紹在 C# 中如何以編程方式創(chuàng)建 Word 文檔、插入表格、設(shè)置樣式,并擴(kuò)展到動態(tài)行列與嵌套表格等高級操作,希望對大家有所幫助
    2025-11-11

最新評論

德化县| 黑河市| 连州市| 东乌| 泽州县| 略阳县| 佳木斯市| 怀柔区| 合江县| 香河县| 上犹县| 年辖:市辖区| 万荣县| 宜宾市| 永嘉县| 封丘县| 吉安市| 漯河市| 屯昌县| 长沙市| 基隆市| 广丰县| 广水市| 辽中县| 大厂| 阿拉善右旗| 上虞市| 利津县| 大田县| 卢龙县| 农安县| 龙海市| 慈溪市| 安泽县| 开化县| 安仁县| 上饶县| 白山市| 宁夏| 伊川县| 龙海市|