J'essaye desespérément depuis plus d'une semaine de faire une dll
compatible en C mais qui en interne est en C++
j'ai reussi a la créer et a l'utiliser sous visual.
mais quand je tente de l'utiliser sous CVI (compilateur C) je bloque sur
le probleme suivant :
j'ai 2 fonctions voici le .H de ma dll :
________________________________________________
#ifdef __cplusplus
extern "C" {
#endif
int __declspec(dllexport) _stdcall InitGdiplus(void);
void __declspec(dllexport) _stdcall CloseGdiplus(void);
#ifdef __cplusplus
}
#endif
________________________________________________
j'ai egalement un .def :
________________________________________________
LIBRARY LSGdiplus
EXPORTS
InitGdiplus
CloseGdiplus
________________________________________________
Et donc sous CVI lorsque j'appelle l'une de ces fonction le compilateur
me jete en me répondant :
undefined symbol '_InitGdiplus@0' not defined in main.c
undefined symbol '_CloseGdiplus@0' not defined in main.c
j'ai essayé plusieurs choses comme par exemple de mettre dans mon .def :
InitGdiplus = _InitGdiplus@0
mais rien n'y fait et pourtant je me répéte, sous visual je ne rencontre
aucun probleme pour appeller ces fonctions.
Je pense qu'il doit y avoir un parametre a modifier dans le projet sous
visual pour résoudre ce probleme de nom décoré.
Dernier détail, si je regarde ma dll je vois ceci :
pour le premier .def :
Export Table
Name: LSGdiplus.dll
Characteristics: 00000000
Time Date Stamp: 408bd341
Version: 0.00
Base: 00000001
Number of Functions: 00000002
Number of Names: 00000002
Ordinal Entry Point Name
0000 00001080 CloseGdiplus
0001 00001030 InitGdiplus
pour le second .def (cad en mettant InitGdiplus = _InitGdiplus@0):
Export Table
Name: LSGdiplus.dll
Characteristics: 00000000
Time Date Stamp: 408bd341
Version: 0.00
Base: 00000001
Number of Functions: 00000004
Number of Names: 00000004
Ordinal Entry Point Name
0000 00001080 CloseGdiplus
0001 00001030 InitGdiplus
0002 00001080 _CloseGdiplus@0
0003 00001030 _InitGdiplus@0
mais pourquoi tant de haine?
voila ma balize de détresse est lancée.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
giova
Probleme résolu, merci quand meme.
giova wrote:
Bonjour.
J'essaye desespérément depuis plus d'une semaine de faire une dll compatible en C mais qui en interne est en C++
j'ai reussi a la créer et a l'utiliser sous visual.
mais quand je tente de l'utiliser sous CVI (compilateur C) je bloque sur le probleme suivant :
j'ai 2 fonctions voici le .H de ma dll :
________________________________________________
#ifdef __cplusplus extern "C" { #endif
int __declspec(dllexport) _stdcall InitGdiplus(void); void __declspec(dllexport) _stdcall CloseGdiplus(void);
#ifdef __cplusplus } #endif
________________________________________________
j'ai egalement un .def :
________________________________________________
LIBRARY LSGdiplus
EXPORTS
InitGdiplus CloseGdiplus
________________________________________________
Et donc sous CVI lorsque j'appelle l'une de ces fonction le compilateur me jete en me répondant :
undefined symbol '' not defined in main.c undefined symbol '' not defined in main.c
j'ai essayé plusieurs choses comme par exemple de mettre dans mon .def :
InitGdiplus =
mais rien n'y fait et pourtant je me répéte, sous visual je ne rencontre aucun probleme pour appeller ces fonctions.
Je pense qu'il doit y avoir un parametre a modifier dans le projet sous visual pour résoudre ce probleme de nom décoré.
Dernier détail, si je regarde ma dll je vois ceci :
pour le premier .def :
Export Table
Name: LSGdiplus.dll Characteristics: 00000000 Time Date Stamp: 408bd341 Version: 0.00 Base: 00000001 Number of Functions: 00000002 Number of Names: 00000002
Ordinal Entry Point Name 0000 00001080 CloseGdiplus 0001 00001030 InitGdiplus
pour le second .def (cad en mettant InitGdiplus = ):
Export Table
Name: LSGdiplus.dll Characteristics: 00000000 Time Date Stamp: 408bd341 Version: 0.00 Base: 00000001 Number of Functions: 00000004 Number of Names: 00000004
Ordinal Entry Point Name 0000 00001080 CloseGdiplus 0001 00001030 InitGdiplus 0002 00001080 0003 00001030
mais pourquoi tant de haine? voila ma balize de détresse est lancée.
Probleme résolu, merci quand meme.
giova wrote:
Bonjour.
J'essaye desespérément depuis plus d'une semaine de faire une dll
compatible en C mais qui en interne est en C++
j'ai reussi a la créer et a l'utiliser sous visual.
mais quand je tente de l'utiliser sous CVI (compilateur C) je bloque sur
le probleme suivant :
j'ai 2 fonctions voici le .H de ma dll :
________________________________________________
#ifdef __cplusplus
extern "C" {
#endif
int __declspec(dllexport) _stdcall InitGdiplus(void);
void __declspec(dllexport) _stdcall CloseGdiplus(void);
#ifdef __cplusplus
}
#endif
________________________________________________
j'ai egalement un .def :
________________________________________________
LIBRARY LSGdiplus
EXPORTS
InitGdiplus
CloseGdiplus
________________________________________________
Et donc sous CVI lorsque j'appelle l'une de ces fonction le compilateur
me jete en me répondant :
undefined symbol '_InitGdiplus@0' not defined in main.c
undefined symbol '_CloseGdiplus@0' not defined in main.c
j'ai essayé plusieurs choses comme par exemple de mettre dans mon .def :
InitGdiplus = _InitGdiplus@0
mais rien n'y fait et pourtant je me répéte, sous visual je ne rencontre
aucun probleme pour appeller ces fonctions.
Je pense qu'il doit y avoir un parametre a modifier dans le projet sous
visual pour résoudre ce probleme de nom décoré.
Dernier détail, si je regarde ma dll je vois ceci :
pour le premier .def :
Export Table
Name: LSGdiplus.dll
Characteristics: 00000000
Time Date Stamp: 408bd341
Version: 0.00
Base: 00000001
Number of Functions: 00000002
Number of Names: 00000002
Ordinal Entry Point Name
0000 00001080 CloseGdiplus
0001 00001030 InitGdiplus
pour le second .def (cad en mettant InitGdiplus = _InitGdiplus@0):
Export Table
Name: LSGdiplus.dll
Characteristics: 00000000
Time Date Stamp: 408bd341
Version: 0.00
Base: 00000001
Number of Functions: 00000004
Number of Names: 00000004
Ordinal Entry Point Name
0000 00001080 CloseGdiplus
0001 00001030 InitGdiplus
0002 00001080 _CloseGdiplus@0
0003 00001030 _InitGdiplus@0
mais pourquoi tant de haine?
voila ma balize de détresse est lancée.
J'essaye desespérément depuis plus d'une semaine de faire une dll compatible en C mais qui en interne est en C++
j'ai reussi a la créer et a l'utiliser sous visual.
mais quand je tente de l'utiliser sous CVI (compilateur C) je bloque sur le probleme suivant :
j'ai 2 fonctions voici le .H de ma dll :
________________________________________________
#ifdef __cplusplus extern "C" { #endif
int __declspec(dllexport) _stdcall InitGdiplus(void); void __declspec(dllexport) _stdcall CloseGdiplus(void);
#ifdef __cplusplus } #endif
________________________________________________
j'ai egalement un .def :
________________________________________________
LIBRARY LSGdiplus
EXPORTS
InitGdiplus CloseGdiplus
________________________________________________
Et donc sous CVI lorsque j'appelle l'une de ces fonction le compilateur me jete en me répondant :
undefined symbol '' not defined in main.c undefined symbol '' not defined in main.c
j'ai essayé plusieurs choses comme par exemple de mettre dans mon .def :
InitGdiplus =
mais rien n'y fait et pourtant je me répéte, sous visual je ne rencontre aucun probleme pour appeller ces fonctions.
Je pense qu'il doit y avoir un parametre a modifier dans le projet sous visual pour résoudre ce probleme de nom décoré.
Dernier détail, si je regarde ma dll je vois ceci :
pour le premier .def :
Export Table
Name: LSGdiplus.dll Characteristics: 00000000 Time Date Stamp: 408bd341 Version: 0.00 Base: 00000001 Number of Functions: 00000002 Number of Names: 00000002
Ordinal Entry Point Name 0000 00001080 CloseGdiplus 0001 00001030 InitGdiplus
pour le second .def (cad en mettant InitGdiplus = ):
Export Table
Name: LSGdiplus.dll Characteristics: 00000000 Time Date Stamp: 408bd341 Version: 0.00 Base: 00000001 Number of Functions: 00000004 Number of Names: 00000004
Ordinal Entry Point Name 0000 00001080 CloseGdiplus 0001 00001030 InitGdiplus 0002 00001080 0003 00001030
mais pourquoi tant de haine? voila ma balize de détresse est lancée.