今天做了乙個動態庫,是需要在c#上面執行的乙個庫。由於一些引數的需要用字串的,但是c#裡面又沒有字串, 找了很多資料,才把這個東西弄好。下面介紹一下我的方法。
下面是在 c++ 裡面宣告的 dll 方法。
logon_lib_api long connectlogonsvr(handle hhandle, const char* plogonip, int nlogonport);
logon_lib_api const char* logon_getlasterror(handle hhandle);
在這個裡面,需要連線伺服器,要連線伺服器,就需要乙個字串型別的引數指向伺服器的ip位址。
c# 裡面的宣告:
[dllimport("logon_lib.dll", entrypoint = "connectlogonsvr")]
public static extern int connectlogonsvr(int nhandle , stringbuilder ip , int port );
[dllimport("logon_lib.dll", entrypoint = "logon_getlasterror")]
public static extern string logon_getlasterror(int nhandle);
c# 裡面的呼叫
stringbuilder ip = new stringbuilder() ;
long nret = connectlogonsvr(nhandle, ip, 2001 );
通過這樣的方法可以完成c#呼叫帶有字串引數的dll 方法。
C 呼叫Dll 傳遞字串指標引數
最近用c 寫乙個小軟體,要呼叫vc寫的dll,傳遞引數給dll,由於是非託管 所以呼叫起來有點麻煩,要把引數轉換成非託管 的指標引數,然後再傳遞給dll using system.runtime.interopservices 操作dll的類空間 class cgicomindex marshal....
C 字串 引數
1 console.writeline hello 1 輸出的是hello1 console.writeline 1 hello 輸出的是1hello console.writeline 1 2 3 hello 3 2 1 輸出的是6hello321 2 用 定義字串,就可以直接在裡面插入變數 in...
Delphi字串 DLL傳遞字串方式
由於是半路出家,寫起 來比較隨性。每次在寫dll傳遞字串時需要費很大的勁。在這裡來乙個demo演示一下 dll library dlltest1 uses sysutils,classes procedure fun1 p1 pchar var p2 pchar stdcall var str st...