如何使用C++在活动目录的属性中设置值
how to set values in attribute of Active directory using C++?
我正在使用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 标头。
提前谢谢。
这行不通:
mod_vals = (PWCHAR*){"bala",Null};
不能以这种方式为联合分配值。 您必须指定要写信给工会的哪些成员。 此外,(PWCHAR *)
是错误的类型;你不是在处理宽字符。 即使你是,也不能仅通过强制转换来转换字符串。
这也行不通:
mod_vals.modv_strvals=(PWCHAR*) Password1;
mod_vals.modv_bvals=NULL;
modv_strvals
成员是一个指针到指针,而不仅仅是一个指针,写信给工会的两个成员是没有意义的;它们是互斥的。 根据上下文,您可以使用modv_strvals
或modv_bvals
,从不两者兼而有之。
您可能希望这样做:
mod_vals.modv_strvals = {"bala", Null};
相关文章:
- C++ 命名参数习惯用语 - 未设置字符串属性
- 如何将字符串属性设置为 QTreeWidgetItem?
- 由 JOB 中的进程启动的子进程是否可以将 JOB 属性设置为脱离作业?
- 是否可以在单独的线程中将 QObject 设置为 QML 上下文属性?
- CMake 设置使用不正确的参数数调用的目标属性
- 如何使用C++获取/设置OBS中的垂直滚动过滤器属性?
- 设置使用 Cereal 序列化库时可以在序列化函数中访问的属性
- 设置类的 char* 属性
- 创建新对象并立即为其设置属性时出现编译器错误
- boost::log 设置"Channel"通道记录器中的属性
- property_tree:无法设置默认属性值
- 将 QObject* 设置为 QMLEngine 根上下文属性
- 设置文件属性成功,但检索其失败
- 如何将项目属性设置为删除警告MSB8004:中间目录不会以落后的斜线结束
- 如何根据道具名称动态设置对象的属性?
- 重载>>运算符未在输入上设置属性
- 如何将按钮的属性设置为从Qt中的小部件可见
- 将公共属性设置为私有属性
- 使用 boost.accumulators 对将特定属性设置为值的对象进行计数
- 如何将成员属性设置为QGraphicsItem的工具提示?