我正在使用 ldap_modify 函数来使用 C++ 更改属性值...
msgid=ldap_modify_ext_s( ld, dnNameval, ldapmod,NULL,NULL );
问题是该函数中的 mod_val 参数...
LDAP *id;
dnNameval ="distinguised name";
在 ldapmod 中有三个值...
- mod_type="待更改属性";
- mod_op=LDAP_MOD_REPLACE;
- ldapmod 结构
ldapmod 结构是:
typedef struct ldapmod {
int mod_op;
char *mod_type;
union {
char **modv_strvals;
struct berval **modv_bvals;
} mod_vals;
#define mod_values mod_vals.modv_strvals
#define mod_bvalues mod_vals.modv_bvals
} LDAPMod;
我尝试像这样传递值:
mod_vals=(PWCHAR*){"bala",Null};
导致错误
error C2679: binary '=' : no operator found which takes a right-hand operand
of type 'PWCHAR *' (or there is no acceptable conversion)
我也试过这个:
mod_vals.modv_strvals=(PWCHAR*) Password1;
mod_vals.modv_bvals=NULL;
但随后数组有一个空值......
谁能帮我弄清楚如何传递该变量中的值?我需要包含任何额外的头文件吗?我已经在使用 winldap.h 标头了。
提前致谢。