學會使用safearray也是很重要的,因為在ado程式設計中經常要用。它的主要目的是用於automation中的陣列型引數的傳遞。因為在網路環境中,陣列是不能直接傳遞的,而必須將其包裝成safearray。實質上safearray就是將通常的陣列增加乙個描述符,說明其維數、長度、邊界、元素型別等資訊。safearray也並不單獨使用,而是將其再包裝到variant型別的變數中,然後才作為引數傳送出去。在variant的vt成員的值如果包含vt_array|...,那麼它所封裝的就是乙個safearray,它的parray成員即是指向safearray的指標。safearray中元素的型別可以是variant能封裝的任何型別,包括variant型別本身。
使用safearray的具體步驟:
方法一:
包裝乙個safearray:
(1). 定義變數,如:
variant varchunk;
safearray *psa;
safearraybound rgsabound[1];
(2). 建立safearray描述符:
uisread=f.read(bval,chunksize);//read array from a file.
if(uisread==0)break;
rgsabound[0].celements =uisread;
rgsabound[0].llbound = 0;
psa = safearraycreate(vt_ui1,1,rgsabound);
(3). 放置資料元素到safearray:
for(long index=0;index讀取safearray中的資料的步驟:
(1). 用safearraygetelement乙個乙個地讀
byte buf[lisread];
for(long index=0;indexvarchunk.vt = vt_array|vt_ui1;
varchunk.parray = psa;
這種方法讀寫safearray都可以,它直接操縱safearray的資料緩衝區,比用safearraygetelement和safearrayputelement速度快。特別適合於讀取資料。但用完之後不要忘了呼叫::safearrayunaccessdata(psa),否則會出錯的。
學會使用SafeArray
學會使用safearray也是很重要的,因為在ado程式設計中經常要用。它的主要目的是用於automation中的陣列型引數的傳遞。因為在網路環境中,陣列是不能直接傳遞的,而必須將其包裝成safearray。實質上safearray就是將通常的陣列增加乙個描述符,說明其維數 長度 邊界 元素型別等資...
學會使用SafeArray
學會使用safearray也是很重要的,因為在ado程式設計中經常要用。它的主要目的是用於automation中的陣列型引數的傳遞。因為在網路環境中,陣列是不能直接傳遞的,而必須將其包裝成safearray。實質上safearray就是將通常的陣列增加乙個描述符,說明其維數 長度 邊界 元素型別等資...
關於SafeArray的使用說明
猛料資料,首先介紹safearray使用,在介紹safearray中的結構。看完該節文章,safearray的陌生感一掃而去。safearray 在ado程式設計中經常使用。它的主要目的是用於automation中的陣列型引數的傳遞。因為在網路環境中,陣列是不能直接傳遞的,而必須將其包裝成 safe...