c 呼叫有字串引數的 DLL

2021-09-30 04:07:29 字數 818 閱讀 7605

今天做了乙個動態庫,是需要在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...