C程式呼叫c 的dll,怎樣把dll中函式返回的陣列賦值給c程式中的陣列

2021-06-25 14:47:35 字數 1118 閱讀 5796

1樓:

c++ **裡在陣列最後加乙個不可能的數字比如-1,之後在c# 裡面讀出來:

c++ **:

char *a(char buf)

;int i = 0;

while(buf[i] != '/0' && i < 49)buffer[i] = -1;

return buffer;

}/////////////////////////////c# **:

unsafe

}或者可以在dll 裡面再寫乙個函式int getsize() 返回陣列的長度:

c++**:

static int size = 0;

int getsize()

char *a(char buf)

;while(buf[i] != '/0' && i < 49)return buffer;

}c#**:

c# **:

unsafe}

2樓:

不建議返回陣列 因為陣列還必須知道大小才行 建議用容器 vector 這個返回容器指標就行了

3樓:匿名使用者

建議用容器 vector 這個返回容器指標

c#呼叫c++動態庫乙個返回為int[]陣列的函式,c#這邊如何接收?請高手幫忙解答。

4樓:匿名使用者

給你乙個思路,如果不行把你的**貼出來,可以詳談。

如果是方法引數返回的內out值,你可以先在c#裡面定義容乙個int ii =new int[10]陣列,然後dllimport的方法定義裡面對應的int陣列引數為"out int",然後呼叫方法的時候傳入的引數為:out ii[0].

最後再去取ii裡面其它的數值,看看是不是得麼你想要的。

5樓:匿名使用者

dllimport("***x.dll", entrypoint = "***x", charset = charset.ansi)]

public static extern int method();

***x為具體的動態庫的名稱 method 為你要的方回法的答名稱

C呼叫C寫的DLL問題

using system.runtime.interopservices 在 c 中的呼叫寫的有問題 引數型別弄錯了 dllimport comm.dll entrypoint registeronzxtcp exactspelling false,callingconvention calling...

C中方法的呼叫,C 怎麼呼叫方法

控制台程式的入口點是main 方法,而你的程式中,並沒有對main 方法進行任何操作,我對你的程式做了如下的修改 using system using system.collections.generic using system.text class program static void mai...

怎樣設定c盤不允許裝程式,怎樣把電腦C盤設定成禁止安裝任何軟體?

o 這個,你可以多使用者,讓別人沒有許可權裝,自己有裝的許可權的話,貌似沒法設定的哦!怎樣把電腦c盤設定成禁止安裝任何軟體?1 方法一 限制c盤驅動器的使用 在win7系統上按win r鍵開啟執行,輸入gpedit.msc,點選確定,如下圖所示 3 進去防止從我的電腦訪問驅動器的介面之後,設定為已啟...