close

 

 

 

接下來,我們來使用一下字串(String)看看,

上一篇的教學是直接return給上面,現在呢,

咱們來處理文字看看。

 

 

[DLL]部分

Step1. 我們在class Calculate那邊,新增一個function 

 

 

 

Step2.接下來我們來implement一下

※友情提示: 如果不能使用這個,代表你的SDL沒關 (至於這東西是什麼,請查一下MSDN)

關法如下 : Project-> Properties->C/C++->General->SDL checks ->Please select "NO(/sdl-)"

 

Step3.然後再接口那邊寫點Code囉

 

extern "C" FORCSHARPCALL_API int CopyMyDllString(char * strTemp, unsigned int nStrLen)
{
    char *arg1 = (char*)0;
    arg1 = (char*)strTemp;
    Calculate cal;
    cal.AssignInfo(arg1);
    return 1;
}

 

 

 

然後 ~

Build 將 dll放到你C#的目錄下

 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

[C#]

在這邊,我稍微提醒一下,其實,上一篇的方法,不用這麼麻煩 ,如果有寫得好的話,可以直接在C#的References那邊→Add Reference→Selected your dll.

 

然後,這邊,我再用不同的方式,來去呼叫dll,所以~客官們,你們看到賺到拉! 一次學到三種呦 !

 

 

Step1. 在class 底下 新增這一行 

 [DllImport("ForCSharpCall.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "CopyMyDllString")]
        private static extern int CopyMyDllString(StringBuilder strTemp, uint nStrLen);

 

Step2.接下來,我們就可以去拿info拉 ! 

再拿之前,再額外教一個東西,

大家知道Windows是一個靠消息傳遞資訊的東東吧 ? 

那在C#裡面,要怎麼收到消息呢 ???

 

Step3.然後,我們從ReadDeviceInfo()這個function進去 ( 有點懶惰改來改去, 反正大家上面的function name 自己取就好囉

 

 

 

 

如此如此一般一般,

你就可以拿到你要的String拉!

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Eric 的頭像
    Eric

    一個小小工程師的心情抒發天地

    Eric 發表在 痞客邦 留言(0) 人氣()