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

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

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

指針的概念

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

先聲明幾個(gè)指針放著做例子:

例一:

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

正文

1、背景

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

2、實(shí)例

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);

錯(cuò)誤代碼:

string dec = Marshal.PtrToStringAnsi(ptr);

得到的dec是亂碼,查詢發(fā)現(xiàn)是因?yà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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

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

    這篇文章主要介紹了DevExpress中GridControl列轉(zhuǎn)義的實(shí)現(xiàn)方法,在項(xiàng)目開發(fā)中有一定的實(shí)用價(jià)值,需要的朋友可以參考下
    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ì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C#判斷當(dāng)前程序是否通過管理員運(yùn)行的方法

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

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

    C#排序算法的比較分析

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

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

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

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

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

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

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

最新評(píng)論

沙田区| 宜宾市| 昌吉市| 台南县| 林州市| 乌鲁木齐县| 张家川| 阳城县| 兴安盟| 阜新市| 依安县| 浙江省| 韶关市| 宁乡县| 沙洋县| 海阳市| 桂林市| 临湘市| 灌南县| 固镇县| 方山县| 商南县| 田林县| 长岭县| 涟水县| 积石山| 邵阳县| 连江县| 北票市| 名山县| 贵溪市| 洪洞县| 綦江县| 长宁区| 阳原县| 汉中市| 凌源市| 武冈市| 双柏县| 滨海县| 钦州市|