ldap_modify関数を使用して、C++を使用して属性値を変更しています...
msgid=ldap_modify_ext_s( ld, dnNameval, ldapmod,NULL,NULL );
問題は、その関数のmod_val引数です...
LDAP *id;
dnNameval ="distinguised name";
ldapmodには3つの値があります...
- 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;
しかし、その場合、配列の値はnullになります。
誰かがその変数の値を渡す方法を理解するのを手伝ってもらえますか?追加のヘッダーファイルを含める必要がありますか?私はすでにwinldap.hヘッダーを使用しています。
前もって感謝します。