各位大神,幫幫忙,用vb.net呼叫c寫的dll,回傳值是指標型別,而我不知道如何在vb.net中接收這個回傳的指標型別資料。請大家支支招。
uj5u.com熱心網友回復:
vb.net定義指標用IntPtr,如Dim ptObject As IntPtr
uj5u.com熱心網友回復:
IntPtruj5u.com熱心網友回復:
大約可以有這樣一些做法,第一就是API宣告中直接把指標宣告為結構體。。省事。因為結構體的參考被傳遞的時候也是指標。。。。第二就是宣告為指標然后用Marshal類的prt2st方法讀指標處的結構體回來。。。你又不提供函式原型,那么。如果各種記憶體錯誤之類的,自己多試試byval還是byref才正確uj5u.com熱心網友回復:
回傳指標,那么回傳值肯定是字串或者結構體了一般用IntPtr接收然后
Marshal.PtrToStringAnsi
Marshal.PtrToStructure
來轉換
當然如果是結構體的話.你需要和c++里定義好一樣的結構型別
uj5u.com熱心網友回復:
先看檔案。C里任何東西都可以是指標,一個結構體他可以回傳指標,一個字串他可以回傳指標,一個回呼他也可以回傳指標所以你就問一個指標,我們救不了。
uj5u.com熱心網友回復:
https://bbs.csdn.net/topics/392401666來看這個帖子,他跟你問的一樣。然后呢,沒有然后。告訴他那可能是任何東西,結果呢。他就認為是一個固定的,最后的回答的他覺得對了,我只能說最后那個回答只能是“碰巧回傳的是字串”
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/141440.html
標籤:VB.NET
上一篇:.net無法找到資源
