Click here to Skip to main content
15,889,992 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Background:
I have a software with previous code in vs2003. Now I have to add LDAP authendicating. I tried with OpenLdap(download from ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/[^]).
But a lot of errors when compelling. as below.
I wonder if the mising match with header files.


my code:
==============================
C#
#pragma managed;

#include "stdafx.h"

#include <stdio.h>
#include <ldap.h>
#include "LDAPAuthMgr.h"
#define LDAP_SERVER "ldap://192.168.1.95:389"
#using <mscorlib.dll>
#using <openldap.dll>

int Authen( int argc, char **argv ){
}

Just compelling above code, a lot of error. (sorry some Chinese)
============================
C:\ucsdk\openldap\include\lber_types.hin(42): error C2146: 语法错误 : 缺少";"(在标识符"ber_int_t"的前面)
C:\ucsdk\openldap\include\lber_types.hin(42): error C2501: "ber_int_t" : 缺少存储类或类型说明符
C:\ucsdk\openldap\include\lber_types.hin(45): error C2146: 语法错误 : 缺少";"(在标识符"ber_sint_t"的前面)
C:\ucsdk\openldap\include\lber_types.hin(45): error C2501: "ber_sint_t" : 缺少存储类或类型说明符
C:\ucsdk\openldap\include\lber_types.hin(46): error C2146: 语法错误 : 缺少";"(在标识符"ber_uint_t"的前面)
C:\ucsdk\openldap\include\lber_types.hin(46): error C2371: "LBER_INT_T" : 重定义;不同的基类型
        C:\ucsdk\openldap\include\lber_types.hin(42) : 参见"LBER_INT_T"的声明
C:\ucsdk\openldap\include\lber_types.hin(46): error C2501: "ber_uint_t" : 缺少存储类或类型说明符
C:\ucsdk\openldap\include\lber_types.hin(49): error C2146: 语法错误 : 缺少";"(在标识符"ber_tag_t"的前面)
C:\ucsdk\openldap\include\lber_types.hin(49): error C2501: "ber_tag_t" : 缺少存储类或类型说明符
C:\ucsdk\openldap\include\lber_types.hin(52): error C2146: 语法错误 : 缺少";"(在标识符"ber_socket_t"的前面)
C:\ucsdk\openldap\include\lber_types.hin(52): error C2501: "ber_socket_t" : 缺少存储类或类型说明符
C:\ucsdk\openldap\include\lber_types.hin(55): error C2146: 语法错误 : 缺少";"(在标识符"ber_len_t"的前面)
C:\ucsdk\openldap\include\lber_types.hin(55): error C2501: "ber_len_t" : 缺少存储类或类型说明符
C:\ucsdk\openldap\include\lber_types.hin(58): error C2146: 语法错误 : 缺少";"(在标识符"ber_slen_t"的前面)
C:\ucsdk\openldap\include\lber_types.hin(58): error C2371: "LBER_LEN_T" : 重定义;不同的基类型
        C:\ucsdk\openldap\include\lber_types.hin(55) : 参见"LBER_LEN_T"的声明
C:\ucsdk\openldap\include\lber_types.hin(58): error C2501: "ber_slen_t" : 缺少存储类或类型说明符
C:\ucsdk\openldap\include\lber.h(121): error C2146: 语法错误 : 缺少")"(在标识符"size"的前面)
C:\ucsdk\openldap\include\lber.h(121): error C2513: "void *" : 在"="前没有声明变量
C:\ucsdk\openldap\include\lber.h(121): error C2440: "初始化" : 无法从"int"转换为"void *"
        从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
C:\ucsdk\openldap\include\lber.h(121): error C2059: 语法错误 : ")"
C:\ucsdk\openldap\include\lber.h(122): error C2146: 语法错误 : 缺少")"(在标识符"n"的前面)
C:\ucsdk\openldap\include\lber.h(122): error C2513: "void *" : 在"="前没有声明变量
C:\ucsdk\openldap\include\lber.h(122): error C2440: "初始化" : 无法从"int"转换为"void *"
        从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
C:\ucsdk\openldap\include\lber.h(122): error C2059: 语法错误 : ")"
C:\ucsdk\openldap\include\lber.h(123): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(191): error C2059: 语法错误 : "*"
C:\ucsdk\openldap\include\lber.h(192): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(192): error C2091: 函数返回函数
C:\ucsdk\openldap\include\lber.h(192): error C2501: "sockbuf_io::ber_slen_t" : 缺少存储类或类型说明符
C:\ucsdk\openldap\include\lber.h(192): warning C4183: "ber_slen_t": 缺少返回类型;假定为返回"int"的成员函数
C:\ucsdk\openldap\include\lber.h(193): error C2059: 语法错误 : "*"
C:\ucsdk\openldap\include\lber.h(194): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(194): error C2091: 函数返回函数
C:\ucsdk\openldap\include\lber.h(194): error C2501: "sockbuf_io::ber_slen_t" : 缺少存储类或类型说明符
C:\ucsdk\openldap\include\lber.h(194): error C2535: "int (__cdecl *sockbuf_io::ber_slen_t(void))(Sockbuf_IO_Desc *,void *)" : 已经定义或声明成员函数
        C:\ucsdk\openldap\include\lber.h(191) : 参见"sockbuf_io::ber_slen_t"的声明
C:\ucsdk\openldap\include\lber.h(194): warning C4183: "ber_slen_t": 缺少返回类型;假定为返回"int"的成员函数
C:\ucsdk\openldap\include\lber.h(213): error C2146: 语法错误 : 缺少";"(在标识符"bv_len"的前面)
C:\ucsdk\openldap\include\lber.h(213): error C2501: "berval::ber_len_t" : 缺少存储类或类型说明符
C:\ucsdk\openldap\include\lber.h(213): error C2501: "berval::bv_len" : 缺少存储类或类型说明符
C:\ucsdk\openldap\include\lber.h(230): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(246): error C2146: 语法错误 : 缺少";"(在标识符"ber_get_tag"的前面)
C:\ucsdk\openldap\include\lber.h(251): error C2146: 语法错误 : 缺少";"(在标识符"ber_skip_tag"的前面)
C:\ucsdk\openldap\include\lber.h(251): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(256): error C2146: 语法错误 : 缺少";"(在标识符"ber_peek_tag"的前面)
C:\ucsdk\openldap\include\lber.h(256): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(261): error C2146: 语法错误 : 缺少";"(在标识符"ber_skip_element"的前面)
C:\ucsdk\openldap\include\lber.h(266): error C2146: 语法错误 : 缺少";"(在标识符"ber_peek_element"的前面)
C:\ucsdk\openldap\include\lber.h(271): error C2146: 语法错误 : 缺少";"(在标识符"ber_get_int"的前面)
C:\ucsdk\openldap\include\lber.h(271): error C2061: 语法错误 : 标识符"ber_int_t"
C:\ucsdk\openldap\include\lber.h(276): error C2146: 语法错误 : 缺少";"(在标识符"ber_get_enum"的前面)
C:\ucsdk\openldap\include\lber.h(276): error C2061: 语法错误 : 标识符"ber_int_t"
C:\ucsdk\openldap\include\lber.h(282): error C2146: 语法错误 : 缺少";"(在标识符"ber_get_stringb"的前面)
C:\ucsdk\openldap\include\lber.h(282): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(295): error C2146: 语法错误 : 缺少";"(在标识符"ber_get_stringbv"的前面)
C:\ucsdk\openldap\include\lber.h(300): error C2146: 语法错误 : 缺少";"(在标识符"ber_get_stringa"的前面)
C:\ucsdk\openldap\include\lber.h(305): error C2146: 语法错误 : 缺少";"(在标识符"ber_get_stringal"的前面)
C:\ucsdk\openldap\include\lber.h(311): error C2146: 语法错误 : 缺少";"(在标识符"ber_get_bitstringa"的前面)
C:\ucsdk\openldap\include\lber.h(311): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(315): error C2146: 语法错误 : 缺少";"(在标识符"ber_get_null"的前面)
C:\ucsdk\openldap\include\lber.h(320): error C2146: 语法错误 : 缺少";"(在标识符"ber_get_boolean"的前面)
C:\ucsdk\openldap\include\lber.h(320): error C2061: 语法错误 : 标识符"ber_int_t"
C:\ucsdk\openldap\include\lber.h(326): error C2146: 语法错误 : 缺少";"(在标识符"ber_first_element"的前面)
C:\ucsdk\openldap\include\lber.h(326): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(332): error C2146: 语法错误 : 缺少";"(在标识符"ber_next_element"的前面)
C:\ucsdk\openldap\include\lber.h(332): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(338): error C2146: 语法错误 : 缺少";"(在标识符"ber_scanf"的前面)
C:\ucsdk\openldap\include\lber.h(361): error C2061: 语法错误 : 标识符"ber_int_t"
C:\ucsdk\openldap\include\lber.h(367): error C2061: 语法错误 : 标识符"ber_int_t"
C:\ucsdk\openldap\include\lber.h(374): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(380): error C2061: 语法错误 : 标识符"ber_tag_t"
C:\ucsdk\openldap\include\lber.h(386): error C2061: 语法错误 : 标识符"ber_tag_t"
C:\ucsdk\openldap\include\lber.h(393): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(398): error C2061: 语法错误 : 标识符"ber_tag_t"
C:\ucsdk\openldap\include\lber.h(404): error C2061: 语法错误 : 标识符"ber_int_t"
C:\ucsdk\openldap\include\lber.h(409): error C2061: 语法错误 : 标识符"ber_tag_t"
C:\ucsdk\openldap\include\lber.h(414): error C2061: 语法错误 : 标识符"ber_tag_t"
C:\ucsdk\openldap\include\lber.h(438): error C2146: 语法错误 : 缺少";"(在标识符"ber_skip_data"的前面)
C:\ucsdk\openldap\include\lber.h(438): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(444): error C2146: 语法错误 : 缺少";"(在标识符"ber_read"的前面)
C:\ucsdk\openldap\include\lber.h(444): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(451): error C2146: 语法错误 : 缺少";"(在标识符"ber_write"的前面)
C:\ucsdk\openldap\include\lber.h(451): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(495): error C2146: 语法错误 : 缺少";"(在标识符"ber_get_next"的前面)
C:\ucsdk\openldap\include\lber.h(495): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(590): error C2146: 语法错误 : 缺少")"(在标识符"s"的前面)
C:\ucsdk\openldap\include\lber.h(590): error C2440: "初始化" : 无法从"int"转换为"void *"
        从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
C:\ucsdk\openldap\include\lber.h(590): error C2059: 语法错误 : ")"
C:\ucsdk\openldap\include\lber.h(595): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(600): error C2146: 语法错误 : 缺少")"(在标识符"n"的前面)
C:\ucsdk\openldap\include\lber.h(600): error C2440: "初始化" : 无法从"int"转换为"void *"
        从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
C:\ucsdk\openldap\include\lber.h(600): error C2059: 语法错误 : ")"
C:\ucsdk\openldap\include\lber.h(633): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(637): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(648): error C2146: 语法错误 : 缺少";"(在标识符"ber_strnlen"的前面)
C:\ucsdk\openldap\include\lber.h(648): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\lber.h(652): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\ldap.h(972): error C2061: 语法错误 : 标识符"ber_tag_t"
C:\ucsdk\openldap\include\ldap.h(1968): error C2146: 语法错误 : 缺少")"(在标识符"s"的前面)
C:\ucsdk\openldap\include\ldap.h(1968): error C2440: "初始化" : 无法从"int"转换为"void *"
        从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
C:\ucsdk\openldap\include\ldap.h(1968): error C2059: 语法错误 : ")"
C:\ucsdk\openldap\include\ldap.h(1973): error C2061: 语法错误 : 标识符"ber_len_t"
C:\ucsdk\openldap\include\ldap.h(1978): error C2146: 语法错误 : 缺少")"(在标识符"n"的前面)
C:\ucsdk\openldap\include\ldap.h(1978): error C2440: "初始化" : 无法从"int"转换为"void *"
C:\ucsdk\openldap\include\ldap.h(1978): fatal error C1003: 错误计数超过 100;正在停止编译
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900