接下來,我們來使用一下字串(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拉!