![](/img/trans.png)
[英]Cannot convert parameter 4 from 'void' to 'const char *'
[英]cannot convert from char to void*
SAFEARRAYBOUND bound[1] = {25, 0};
SAFEARRAY * psa = SafeArrayCreate(VT_UI1, 1, bound);
for(long int i = 0; i <25; i++)
SafeArrayPutElement(psa, &i,sendBuf[i]);
我正在嘗試從char數組創建一個safearray ,但得到的錯誤cannot convert from char to void*
sendBuf是一個char數組
您沒有向我們顯示錯誤,但似乎SafeArrayPutElement
會將指向該元素的指針作為第三個參數。 我相信,如果您使用:
SafeArrayPutElement(psa, &i, &sendBuf[i]);
注意&
。
在這種情況下,使用SafeArrayAccessData()
代替SafeArrayPutElement()
會更加有效:
SAFEARRAYBOUND bound[1] = {25, 0};
SAFEARRAY * psa = SafeArrayCreate(VT_UI1, 1, bound);
void *pvData;
SafeArrayAccessData(psa, &pvData);
memcpy(pvData, sendBuf, 25);
SafeArrayUnaccessData(psa);
要么:
SAFEARRAYBOUND bound[1] = {25, 0};
SAFEARRAY * psa = SafeArrayCreate(VT_UI1, 1, bound);
unsigned char *pvData;
SafeArrayAccessData(psa, (void**)&pvData);
for(long int i = 0; i <25; i++)
pvData[i] = sendBuf[i];
SafeArrayUnaccessData(psa);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.