找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
SetTagValue/GetTagValue源自于ODK函数DMGetValue/DMSetValue,其操作对象类型主要是VARIANT,使用起来的确比较困难,以下是个举例,详细用法请参考ODK帮助:
//给BOOL型变量赋值
#define TagName "bRet2"
CMN_ERROR Error;
BOOL ret = FALSE;
DM_VARKEY VarKey;
VARIANT VarValue;
DWORD dwState;
memset(&VarValue, 0, sizeof(VARIANT) );
memset(&VarKey,0, sizeof(DM_VARKEY));
memset(&Error,0,sizeof(Error));
//初始化VarKey并设置变量名
VarKey.dwKeyType = DM_VARKEY_NAME;
VarKey.dwID = 0;
strcpy( VarKey.szName, TagName);
VarKey.lpvUserData = (void*)0;
//初始化VarValue并赋值
VariantInit(&VarValue);
VarValue.vt= VT_BOOL;
VarValue.u.boolVal=TRUE;
ret=SetTagValue(&VarKey,&VarValue,&dwState,&Error);
if(FALSE == ret)
printf("Error in DMGetValue: E1= 0x%08lx ; E2= 0x%08lx ; %s", Error.dwError1,
Error.dwError2, Error.szErrorText);
VariantClear(&VarValue );
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!