WebSphere Message Service Clients for C/C++ and .NET, Version 1.2 作業系統: Linux, Windows

會以參照形式來傳回字串或位元組陣列的 C 函數

這個主題說明以參照形式來傳回字串或位元組陣列之 C 函數所用的介面。

當 C 應用程式呼叫會以值形式來傳回字串的 C 函數會以值形式來傳回位元組陣列的 C 函數中所述的一個函數時, XMS 必須將字串或位元組陣列複製到應用程式所提供的緩衝區中。如果應用程式正在處理大量的訊息, 且訊息中的字串或位元組陣列相當大, 則所耗的複製時間可能會影響效能。

在此情況下為了獲得較好的效能, C API 另提供一組函數。當應用程式呼叫這些函數之一時, 會有一個參數傳回儲存在 XMS 所擁有之記憶體中的字串或位元組陣列的指標, 而另一個參數會傳回字串或位元組陣列的長度。舉例來說, xmsBytesMsgReadBytesByRef()xmsGetStringPropertyByRef() 皆屬於這類函數。

如果需要對字串進行資料轉換,XMS 會將字元轉換成應用程式的字碼頁, 並傳回轉換後之字串的指標。傳回給應用程式的長度會是轉換後之字串的長度。

如果需要轉換資料,則應用程式第一次以參照形式擷取字串所花的時間, 可能和以值形式來擷取字串的時間一樣長。不過,XMS 會快取轉換後的字串, 因此後續呼叫用來擷取相同的字串,所需的時間就不會那麼久。

由於這些函數會將指標傳回至 XMS 所擁有的記憶體中, 應用程式不得試著釋放或修改這個記憶體中的內容。如果嘗試如此做,則可能造成無法預期的結果。

除非刪除字串或位元組陣列的相關聯 XMS 物件,否則 傳回給應用程式的指標會一直有效。如果應用程式在物件刪除後仍需要資料,則必須複製字串或位元組陣列。


Concept topic

使用條款 | 評比此網頁

時間戳記前次更新: 25 Apr 2006
(C) Copyright IBM Corporation 2005. All Rights Reserved.
本資訊中心採用 Eclipse 技術。(http://www.eclipse.org)