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 進去防止從我的電腦訪問驅動器的介面之後,設定為已啟...