社区
ATL
帖子详情
大侠们,救命啊,在线等,高分,谁来告诉我SAFEARRAY具体怎么用啊??
explosun
2003-10-15 03:07:40
如题
...全文
86
4
打赏
收藏
大侠们,救命啊,在线等,高分,谁来告诉我SAFEARRAY具体怎么用啊??
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
flyingjust
2003-10-16
打赏
举报
回复
SAFEARRAY* psaDataID = NULL;
long lSize=prsID->RecordCount*sizeof(long);
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = lSize;
psaDataID= SafeArrayCreate( VT_I4, 1, rgsabound );
SafeArrayAccessData( psaDataID, (void**)&plData );
for(int i=0;i<iCount;i++)
{
long lID=prsID->Fields->GetItem(L"DOCID")->Value;
plData[i]=lID;
prsID->MoveNext();
}
SafeArrayUnaccessData(psaDataID);
long lRet=-2;
SafeArrayDestroy(psaDataID);
atEleven
2003-10-15
打赏
举报
回复
http://www.codeproject.com/atl/udtdemo.asp
Eearbird
2003-10-15
打赏
举报
回复
你可以参考这个例子:
void GetScriptMaps()
{
IADsContainer* iContainer;
IADs* iAds;
VARIANT SC;
char s[5];
int i=0;
char dirName[MAX_PATH];
VARIANT path , state, sPort;
if(ADsGetObject(L"IIS://localhost/w3svc",IID_IADsContainer,(void**)&iContainer)==S_OK) {
//得到默认站点
iContainer->GetObject(_bstr_t("IIsWebServer"), _bstr_t("1"),(IDispatch**)&iAds);
if(iAds==NULL) return ;
VariantInit(&sPort);
HRESULT hr=iAds->Get(_bstr_t("ScriptMaps"),&sPort);
if(SUCCEEDED(hr))
{
if(sPort.vt ==VT_ARRAY|VT_VARIANT)
{
SAFEARRAY* psa = sPort.parray;
VARIANT* varArray=NULL;
SafeArrayAccessData(psa,(VOID**)&varArray);
UINT uDim = SafeArrayGetDim(psa);
if(1==uDim)
{
long lLbound,lRbound;
SafeArrayGetLBound(psa,1,&lLbound);
SafeArrayGetUBound(psa,1,&lRbound);
for(long i=lLbound;i<=lRbound;i++)
{
if(varArray[i].vt==VT_BSTR)
{
_bstr_t bstmp(varArray[i].bstrVal,true);
printf((LPCTSTR)bstmp);
printf("\n");
}
}
SafeArrayUnaccessData(psa);
}
}
}
iAds->Release();
}
}
drip
2003-10-15
打赏
举报
回复
不懂,帮你up
Saf
eAr
ray
使用.doc
一旦不再需要
Saf
eAr
ray
,你可以使用`
Saf
eAr
ray
Destroy`函数来释放其占用的内存资源。 3. **访问
Saf
eAr
ray
数据** - `
Saf
eAr
ray
AccessData` 允许你获取指向数组内部数据的指针,以便进行读写操作。调用此函数后,...
vb
saf
ear
ray
Saf
eAr
ray
提供了一种安全的方式来存储和访问多维数组的数据,它支持各种数据类型,包括基本数据类型(如Integer、Double等)以及自定义对象。
Saf
eAr
ray
在内存中管理数组的方式使得其在处理大量数据时效率较高,同时...
Com_
Saf
eAr
ray
使用实例
可以使用`
Saf
eAr
ray
PutElement`函数将元素放入数组中,或者通过`
Saf
eAr
ray
Lock`和`
Saf
eAr
ray
Unlock`来锁定数组,然后直接访问其内存。 3. **访问
Saf
eAr
ray
** 访问
Saf
eAr
ray
元素可以通过`
Saf
eAr
ray
GetElement`或...
学会使用
Saf
eAr
ray
之 Delphi篇--源码
实质上
Saf
eAr
ray
就是将通常的数组增加一个描述符,说明其维数、长度、边界、元 素类型等信息。
Saf
eAr
ray
也并不单独使用,而是将其再包装到VARIANT类型的变量中,然后才作为参数传送出去。在VARIANT的vt成员的 值如果...
saf
ear
ray
-2.zip_
Saf
eAr
ray
描述 "使用
SAF
EAR
RAY
传递二进制数据" 提到的,是通过
Saf
eAr
ray
来传输可能包含任意类型数据的二进制流。在COM编程中,尤其是在处理大量数据或跨进程通信时,
Saf
eAr
ray
提供了一种有效的方式,可以将二进制数据如图像、...
ATL
3,248
社区成员
48,531
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章