Bonjour,


Je suis sur un projet en C/C++ et j'en ai pas fait depuis 3/4 ans, donc j'ai pas mal de soucis. Surtout que y'a 3/4 ans j'ai appris seulement quelques bases ...

Je m'essaye à l'utilisation de dll, je suis sous Windows XP et j'utilises code::block. La dll est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
#ifdef BUILD_DLL
    #define DLL_EXPORT __declspec(dllexport)
#else
    #define DLL_EXPORT
#endif
 
void affiche(char *name)
{
    printf("Hello world %s",name);
}
Je copie ensuite la dll dans le dossier de mon programme principal

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
#include <iostream>
#include <windows.h>
 
void aff(char *mystr);
 
int main()
{
    char *name = "Greg";
    printf("%p",name);
 
    aff(name);
 
	HINSTANCE DLLHandle;
    typedef char (*PointeurFonctionType)();
    PointeurFonctionType PointeurFonction;
 
    DLLHandle = LoadLibrary("sample.DLL");
    PointeurFonction = (PointeurFonctionType)GetProcAddress(DLLHandle,"affiche");
    PointeurFonction(name);
 
	return 0;
 
}
 
void aff(char *mystr){
    printf("%s",mystr);
}
Le problème se situe lors de l'appel de la fonction de la dll avec le paramètre, il me met le message d'erreur suivant :

main.cpp:19: error: too many arguments to function

Pouvez-vous m'aider à comprendre ce qu'il se passe exactement ?

Merci