2014-07-13 29 views
-1

我被困在一個我正在編寫的程序中,並且認爲它在這裏問不會有什麼傷害。該程序在C#中。我正在使用一個令我感到困惑的命令。在C#中的命令是:方法參數是C#中的BSTR *

scanner.DirectIO(int x, int y, object z); 

但是,當我擡起頭來了命令的文檔,它是:

scanner.DirectIO(long x, long* y, BSTR* z); //z needs to have (some number) of bytes allocated 

我的問題是,C#有沒有相當於BSTR *。這段代碼應該將一個位圖的bstr放入z中。我現在不太擔心x或y。我試着將它傳遞給需要的大小的字節[],但那不起作用。我正在考慮使用類似的東西:

IntPtr z = SysAllocStringByteLen(null, size); 

但我不確定這是否是我想要的東西。有什麼建議?謝謝!

編輯:我發現了一個類似的問題,但它並沒有告訴我關於如何通過一個BSTR *,只是一個BSTR:Convention for passing BSTRs into COM functions from C# (COM interop)

編輯: DIRECTIO是Scanner類中的方法microsoft.pointofservice。 BSTR的第二份聲明來自特定掃描儀的文檔。

+0

[從C#(COM互操作)傳遞BSTR到COM函數的慣例的可能的重複](http://stackoverflow.com/questions/7033375/convention-for-passing-bstrs-into-com-functions-from-passing-bstrs-into-com-functions-from- c-sharp-com-interop) –

+0

那麼,這並不是接近正確的。它看起來像一個COM方法,但它從來沒有被嚴重破壞。你必須更加明確地說明這個聲明是如何產生的。 –

+0

我會編輯它以反映這一點。 – user3834440

回答