Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Qui peut m'aider à compiler ce programme de Microsoft ?

4 réponses
Avatar
andre
Bonjour,
je dois miger un programme (founis par Microsoft, article Q284199) de
suppression de BAL en vbs/adsi vers c++ :

Ayant un besoin spécifique pour un serveur de messagerie Exchange, j'ai un
programme cpp à compiler mais je n'y arrive pas.

en fait, à la compilation, il m'indique aucune erreur mais impossible de
créer un executable car là, 5 erreurs apparaîssent :
<<<<<<<<<<
Linking ...
DAPIDel.obj : error LNK2001: unresolved external symbol _DAPIEnd@4
DAPIDel.obj : error LNK2001: unresolved external symbol _DAPIStartA@4
DAPIDel.obj : error LNK2001: unresolved external symbol _DAPIWriteA@28
DAPIDel.obj : error LNK2001: unresolved external symbol _DAPIFreeMemory@4
Debug/DAPIDel.exe : fatal error LNK1120: 4 unresolved externals
error executing link.exe
DAPIDel.exe - 5 error(s), 0 warning(0)
>>>>>>>>>>>

n'ayant jamais utilisé visualC++, pouvez vous m'aider ?

le fichier à compiler est dapidel.cpp
j'ai bien les librairies dapi.lib

remarque : Chez Microsoft, ils pourraient directement fournir un executable,
non ?
merci pour votre aide


<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
//
// DAPIDel.cpp : Defines the entry point for the console application.
// Dapi.lib is the only additional library required to compile the code.
//

#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <lmcons.h>
#include <tchar.h>

#include <dapi.h>

#include <dapimsg.h> // error codes

void DAPIDelObj(DAPI_HANDLE hDAPISession, char * szCN, char *
szObjectClass);
void ReportDAPIEvent(DAPI_EVENT* pDAPIEvent);


void main(int argc, char* argv[])
{
DAPI_HANDLE hDAPISession;
DAPI_EVENT* pDAPIEvent = NULL;
DAPI_PARMS DAPIParms = {0};

if (5 > argc)
{
printf("\nDAPIDel ExchangeServerName ContainerDN CN ObjectClass");
printf("\n\nExample:");
printf("\nDAPIDel myserver /O=org/OU=site/CN=recipients commonname
mailbox");
return;
}
else
{
printf("\nExchange Server: %s", argv[1]);
printf("\nBasePoint Container DN: %s", argv[2]);
printf("\nCommon Name: %s", argv[3]);
printf("\nObjectClass: %s", argv[4]);
}

// start DAPI for this session
//initialize the the DAPI Parms structure and the DAPI operation session
DAPIParms.dwDAPISignature = DAPI_SIGNATURE;
DAPIParms.dwFlags =
DAPI_EVENT_ALL|DAPI_MODIFY_REPLACE_PROPERTIES|DAPI_RAW_MODE ;
DAPIParms.pszDSAName = argv[1];
DAPIParms.pszBasePoint = argv[2];
DAPIParms.pszContainer = NULL;
DAPIParms.pszNTDomain = NULL;
DAPIParms.pszCreateTemplate = NULL;
DAPIParms.pAttributes = NULL;

pDAPIEvent = DAPIStart(&hDAPISession, &DAPIParms); //struct with DAPI
params

if(pDAPIEvent)
{
printf("\nDAPIStart() returned %08x - check app eventlog",
pDAPIEvent->dwDAPIError);
ReportDAPIEvent(pDAPIEvent);
// Note: dwDAPIError < 0 does NOT necessarily mean DAPIStart failed
if (0==hDAPISession || INVALID_HANDLE_VALUE == hDAPISession) return;
}
else
printf("\nDAPIStart() was successful");
DAPIDelObj(hDAPISession, argv[3], argv[4]);
DAPIEnd(&hDAPISession);
printf("\nEND PROGRAM");
}

ATT_VALUE * AddStrAttr(_TINT i, LPCTSTR szClass, LPCTSTR szValue,
DAPI_ENTRY * dapiAttr, DAPI_ENTRY * dapiValues)
{
ATT_VALUE * AttName = &(dapiAttr->rgEntryValues[i]);
AttName->DapiType = DAPI_STRING8;
AttName->Value.pszValue = const_cast <LPTSTR> (szClass);
AttName->size = _tcslen(AttName->Value.pszValue);
AttName->pNextValue = NULL;

ATT_VALUE * AttValue = &(dapiValues->rgEntryValues[i]);
AttValue->DapiType = DAPI_STRING8;
AttValue->Value.pszValue = const_cast <LPTSTR> (szValue);
AttValue->size = _tcslen(AttValue->Value.pszValue);
AttValue->pNextValue = NULL;

return AttValue;
}


void DAPIDelObj(DAPI_HANDLE hDAPISession, char * szCN,
char * szObjectClass)
{
DAPI_EVENT* pDAPIEvent = NULL;
DAPI_ENTRY Attributes;
DAPI_ENTRY Values;
ATT_VALUE AttName[3];
ATT_VALUE AttValue[3];
int i=0;

printf("\nIN DAPIDelObj()");

//set up the account information

Attributes.unAttributes = 2; //# of attributes
Attributes.ulEvalTag = TEXT_VALUE_ARRAY; //Value Type
Attributes.rgEntryValues = &AttName[0];

Values.unAttributes = 2; //# of attributes
Values.ulEvalTag = VALUE_ARRAY; //Value Type

Values.rgEntryValues = (ATT_VALUE*)&AttValue;

AddStrAttr( i++, "Obj-Class", szObjectClass, &Attributes, &Values);
AddStrAttr( i, "Directory Name", szCN, &Attributes, &Values);

// delete the mailbox
printf("\nDeleting %s object /cn=\"%s\"", szObjectClass, szCN);
pDAPIEvent = DAPIWrite(hDAPISession,
DAPI_WRITE_DELETE,
&Attributes,
&Values,
NULL,
NULL,
NULL);

if(pDAPIEvent)
{
// write FAILED
printf("\nDAPIWrite ERROR %08x check app eventlog",
pDAPIEvent->dwDAPIError);
ReportDAPIEvent(pDAPIEvent);
}
else
printf("\nDAPIWrite() was successful");

}

void ReportDAPIEvent(DAPI_EVENT* pDAPIEvent)
{
HANDLE hDAPIEventSource = RegisterEventSource(NULL,
TEXT("MSExchangeDSImp"));

ReportEvent(hDAPIEventSource,
(WORD)EVENTLOG_ERROR_TYPE,
0xFFFF,
pDAPIEvent->dwDAPIError,
NULL,
(WORD)pDAPIEvent->unSubst,
0,
(const char**) pDAPIEvent->rgpszSubst,
NULL);

DAPIFreeMemory(pDAPIEvent);

DeregisterEventSource(hDAPIEventSource);
}

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>


eric.andre@oreka.com
Le bruit de la mer empêche les petits poissons de dormir...

4 réponses

Avatar
Nicolas Aunai
andre a formulé la demande "Qui peut m'aider à compiler ce programme de
Microsoft ?" :


bill ?

--
Nico,
http://astrosurf.com/nicoastro
messenger :
Avatar
Raphael TOSTO
"andre" a écrit dans le message de
news:bte2nc$4sn$
Bonjour,
je dois miger un programme (founis par Microsoft, article Q284199) de
suppression de BAL en vbs/adsi vers c++ :



Tu es, à plus d'un titre hors sujet. Ce que je puis dire : tu as bêtement un
problème de link.

Essayes plutot sur :
- fr.comp.os.ms-windows.programmation
- microsoft.public.fr.vc


Ayant un besoin spécifique pour un serveur de messagerie Exchange, j'ai un
programme cpp à compiler mais je n'y arrive pas.

en fait, à la compilation, il m'indique aucune erreur mais impossible de
créer un executable car là, 5 erreurs apparaîssent :
<<<<<<<<<<
Linking ...
DAPIDel.obj : error LNK2001: unresolved external symbol
DAPIDel.obj : error LNK2001: unresolved external symbol
DAPIDel.obj : error LNK2001: unresolved external symbol
DAPIDel.obj : error LNK2001: unresolved external symbol
Debug/DAPIDel.exe : fatal error LNK1120: 4 unresolved externals
error executing link.exe
DAPIDel.exe - 5 error(s), 0 warning(0)













n'ayant jamais utilisé visualC++, pouvez vous m'aider ?

le fichier à compiler est dapidel.cpp
j'ai bien les librairies dapi.lib













Avatar
Loïc Joly
Raphael TOSTO wrote:

"andre" a écrit dans le message de
news:bte2nc$4sn$

Bonjour,
je dois miger un programme (founis par Microsoft, article Q284199) de
suppression de BAL en vbs/adsi vers c++ :




Tu es, à plus d'un titre hors sujet. Ce que je puis dire : tu as bêtement un
problème de link.

Essayes plutot sur :
- fr.comp.os.ms-windows.programmation
- microsoft.public.fr.vc


Je ne pense pas que la question soit vraiment hors sujet : Le message
d'erreur en question est évidemment spécifique à un compilateur, comme
tous les messages de diagnostic, mais ça ne veut pourtant pas dire (au
contraire) qu'il ne faut jamais les écrire quand on poste un problème
dans les news.

Le problème sous-jacent est lui un problème de pur C++, indépendant du
contexte dans lequel le programme est écrit. Je suis d'accord que le
contenu du programme en question est de la programmation système qui
elle est hors-sujet.

En deux mots : Tu as effectivement un problème de link : Le code que tu
compiles n'est pas auto-suffisant, il a besoin d'un autre code, déjà
compilé, pour fonctionner. Ce code est souvent sous forme de fichiers
bibliothèque (.lib sous VC++) ou de fichier objet (.obj sous VC++).

Il faut indiquer au compilateur d'utiliser pour la phase de liaison (le
moment ou le lieur (linker) assemble tous les .lib et .obj indiqués) le
fichier approprié (qui doit être indiqué sur le site de Microsoft, ou
dans la doc des fonctions pour lesquelles le message d'erreur apparaît).
Si tu veux plus d'information sur comment réaliser cette tâche, je te
conseille de te tourner vers un des forums précédemment cités.

--
Loïc


Avatar
andre
En effet, j'ai réussi à ajouter la librairie au programme et ça marche.
c'était tout simple, mais quand on sais pas...
Merci pour l'aide.


"Loïc Joly" a écrit dans le message de news:
btf58i$1kl$
Raphael TOSTO wrote:

"andre" a écrit dans le message de
news:bte2nc$4sn$

Bonjour,
je dois miger un programme (founis par Microsoft, article Q284199) de
suppression de BAL en vbs/adsi vers c++ :




Tu es, à plus d'un titre hors sujet. Ce que je puis dire : tu as
bêtement un


problème de link.

Essayes plutot sur :
- fr.comp.os.ms-windows.programmation
- microsoft.public.fr.vc


Je ne pense pas que la question soit vraiment hors sujet : Le message
d'erreur en question est évidemment spécifique à un compilateur, comme
tous les messages de diagnostic, mais ça ne veut pourtant pas dire (au
contraire) qu'il ne faut jamais les écrire quand on poste un problème
dans les news.

Le problème sous-jacent est lui un problème de pur C++, indépendant du
contexte dans lequel le programme est écrit. Je suis d'accord que le
contenu du programme en question est de la programmation système qui
elle est hors-sujet.

En deux mots : Tu as effectivement un problème de link : Le code que tu
compiles n'est pas auto-suffisant, il a besoin d'un autre code, déjà
compilé, pour fonctionner. Ce code est souvent sous forme de fichiers
bibliothèque (.lib sous VC++) ou de fichier objet (.obj sous VC++).

Il faut indiquer au compilateur d'utiliser pour la phase de liaison (le
moment ou le lieur (linker) assemble tous les .lib et .obj indiqués) le
fichier approprié (qui doit être indiqué sur le site de Microsoft, ou
dans la doc des fonctions pour lesquelles le message d'erreur apparaît).
Si tu veux plus d'information sur comment réaliser cette tâche, je te
conseille de te tourner vers un des forums précédemment cités.

--
Loïc