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

NetJoinDomain() - compilation error

3 réponses
Avatar
dieb
Bonjour,

J'éssaie de faire un tout petit programme pour joindre un PC à un domaine :

#include <lm.h>
#include <stdio.h>

int maint (void)
{
NET_API_STATUS ret;

ret = NetJoinDomain(NULL,
"myad\mydc.myad.mycompany.com",
"OU=Workstations,DC=myad,DC=mycompany,DC=com",
"myad\joindom",
"mypassword",
NETSETUP_JOIN_DOMAIN | NETSETUP_ACCT_CREATE);
if (ret != NERR_Success) {
printf("Error! \n");
exit(1);
}

printf("Success\n");
exit (0);
}

Le résultat de compilation est ... plein d'erreur sur les headers inclus
par lm.h, que ce soit avec devcpp ou VC. Exemple avec devcpp:

Compiler: Default compiler
Executing gcc.exe...
gcc.exe "D:\Documents and Settings\joindom\joindomain.c" -o
"D:\Documents and Settings\joindom\joindomain.exe" -Wall -D _DEBUG_
-g3 -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib" -lnetapi32 -g3
In file included from C:/Dev-Cpp/include/lm.h:8,
from D:\Documents and Settings\joindom\joindomain.c:1:
C:/Dev-Cpp/include/lmaccess.h:204: error: syntax error before "LPWSTR"
C:/Dev-Cpp/include/lmaccess.h:206: error: syntax error before "LPWSTR"
C:/Dev-Cpp/include/lmaccess.h:208: error: syntax error before
"usri1_password_age"
C:/Dev-Cpp/include/lmaccess.h:209: error: syntax error before "usri1_priv"
[...]

Et la compilation se termine avec trop d'erreur (plus de 500 de ce type,
tous sur les headers des librairies).

Je note que j'obtient également autant d'erreur avec VC6.

Je pense que l'erreur viens de ma part, mais je ne vois pas bien ce que
j'ai mal fait.

3 réponses

Avatar
Christian ASTOR
dieb wrote:

J'éssaie de faire un tout petit programme pour joindre un PC à un domaine :

#include <lm.h>



Manque #include <windows.h> avant

int maint (void)



main

ret = NetJoinDomain(NULL,"myadmydc.myad.mycompany.com",



L +

exit...



return...
Avatar
dieb
>> #include <lm.h>




Manque #include <windows.h> avant

int maint (void)




main

ret = NetJoinDomain(NULL,"myadmydc.myad.mycompany.com",






Ok, désolé j'ai posté le un code de merde, on peut le dire, et en plus
pas le dernier (j'avais quand même pas compilé un maint()...

Mais bon, pas d'excuses. Donc une fois windows.h inclus, j'ai tout de
même ce genre de résultats (devcpp):

Compiler: Default compiler
Executing gcc.exe...
gcc.exe "D:Documents and Settingsjoindomjoindomain.c" -o
"D:Documents and Settingsjoindomjoindomain.exe" -Wall -D _DEBUG_
-g3 -I"C:Dev-Cppinclude" -L"C:Dev-Cpplib" -lnetapi32 -g3
D:Documents and Settingsjoindomjoindomain.c: In function `main':

D:Documents and Settingsjoindomjoindomain.c:10: warning: implicit
declaration of function `NetJoinDomain'
D:Documents and Settingsjoindomjoindomain.c:15: error:
`NETSETUP_JOIN_DOMAIN' undeclared (first use in this function)
D:Documents and Settingsjoindomjoindomain.c:15: error: (Each
undeclared identifier is reported only once
D:Documents and SettingsItalyjoindomjoindomain.c:15: error: for each
function it appears in.)
D:Documents and SettingsItalyjoindomjoindomain.c:15: error:
`NETSETUP_ACCT_CREATE' undeclared (first use in this function)

Execution terminated


Or msdn dit clairement que cette fonction est déclarée dans Lmjoin.h et
qu'il faut include Lm.h.
Avatar
Christian ASTOR
dieb wrote:

D:Documents and Settingsjoindomjoindomain.c:15: error:
`NETSETUP_JOIN_DOMAIN' undeclared (first use in this function)



Includes non à jour.
Les maj par la PSDK.