j'ai développé des DLLs en C/C++ (qui en appelle d'autres mais pas écrites
par mes soins) pour un client qui utilise WinDev 8.0
Il rencontre un problème lors de l'appel des fonctions. Son logiciel lui dit
que la fonction appelée est introuvable. La DLL est bien
chargée.
Pour info la DLL est utilisée dans d'autres logiciels (hors WinDev) sans
aucun problème.
Y a t-il des contraintes d'écritures de DLLpour l'environnement WinDev ? Si
oui où puis je les trouver ?
Le problème reste entier pour les DLLs qui ne sont pas de moi !!!
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
Gégé
GPVISION wrote:
j'ai développé des DLLs en C/C++ (qui en appelle d'autres mais pas écrites par mes soins) pour un client qui utilise WinDev 8.0 Il rencontre un problème lors de l'appel des fonctions. Son logiciel lui dit que la fonction appelée est introuvable. La DLL est bien chargée.
Attention, les fonctions export sont sensibles à la casse
GPVISION wrote:
j'ai développé des DLLs en C/C++ (qui en appelle d'autres mais pas écrites
par mes soins) pour un client qui utilise WinDev 8.0
Il rencontre un problème lors de l'appel des fonctions. Son logiciel lui dit
que la fonction appelée est introuvable. La DLL est bien
chargée.
Attention, les fonctions export sont sensibles à la casse
j'ai développé des DLLs en C/C++ (qui en appelle d'autres mais pas écrites par mes soins) pour un client qui utilise WinDev 8.0 Il rencontre un problème lors de l'appel des fonctions. Son logiciel lui dit que la fonction appelée est introuvable. La DLL est bien chargée.
Attention, les fonctions export sont sensibles à la casse
Manu
> j'ai développé des DLLs en C/C++ (qui en appelle d'autres mais pas écrites par mes soins) pour un client qui utilise WinDev 8.0 Il rencontre un problème lors de l'appel des fonctions. Son logiciel lui dit que la fonction appelée est introuvable. La DLL est bien chargée.
Pour les accès [alter]natifs et divers autres projets, nous utilisons les DLL à tout va. Le problème de fonction appelée introuvable apprait quand la fonction n'existe pas dans la dll ou qu'elle est appelée avec un nombre de paramètres différent ou de mauvais typage.
Pour info la DLL est utilisée dans d'autres logiciels (hors WinDev) sans aucun problème. Y a t-il des contraintes d'écritures de DLLpour l'environnement WinDev ? Si oui où puis je les trouver ?
Pour utiliser les chaines de caractères C (char *) il faut passer des chaines ASCIIZ.
Le problème reste entier pour les DLLs qui ne sont pas de moi !!!
-- Emmanuel
> j'ai développé des DLLs en C/C++ (qui en appelle d'autres mais pas
écrites par mes soins) pour un client qui utilise WinDev 8.0
Il rencontre un problème lors de l'appel des fonctions. Son logiciel
lui dit que la fonction appelée est introuvable. La DLL est bien
chargée.
Pour les accès [alter]natifs et divers autres projets, nous utilisons les
DLL à tout va. Le problème de fonction appelée introuvable apprait quand la
fonction n'existe pas dans la dll ou qu'elle est appelée avec un nombre de
paramètres différent ou de mauvais typage.
Pour info la DLL est utilisée dans d'autres logiciels (hors WinDev)
sans aucun problème.
Y a t-il des contraintes d'écritures de DLLpour l'environnement
WinDev ? Si oui où puis je les trouver ?
Pour utiliser les chaines de caractères C (char *) il faut passer des
chaines ASCIIZ.
Le problème reste entier pour les DLLs qui ne sont pas de moi !!!
> j'ai développé des DLLs en C/C++ (qui en appelle d'autres mais pas écrites par mes soins) pour un client qui utilise WinDev 8.0 Il rencontre un problème lors de l'appel des fonctions. Son logiciel lui dit que la fonction appelée est introuvable. La DLL est bien chargée.
Pour les accès [alter]natifs et divers autres projets, nous utilisons les DLL à tout va. Le problème de fonction appelée introuvable apprait quand la fonction n'existe pas dans la dll ou qu'elle est appelée avec un nombre de paramètres différent ou de mauvais typage.
Pour info la DLL est utilisée dans d'autres logiciels (hors WinDev) sans aucun problème. Y a t-il des contraintes d'écritures de DLLpour l'environnement WinDev ? Si oui où puis je les trouver ?
Pour utiliser les chaines de caractères C (char *) il faut passer des chaines ASCIIZ.
Le problème reste entier pour les DLLs qui ne sont pas de moi !!!
-- Emmanuel
GPVISION
Bonjour,
Pour les accès [alter]natifs et divers autres projets, nous utilisons les DLL à tout va. Le problème de fonction appelée introuvable apprait quand
la
fonction n'existe pas dans la dll ou qu'elle est appelée avec un nombre de paramètres différent ou de mauvais typage.
OK je ne pense que le client ai fait ce type d'erreur. Par contre y a t-il des typages que WinDev8.0 n'aiment pas. Je travaille dans le traitement d'images et j'ai des structures assez importantes, tous les types possibles du C et C++ (double, float, int, unsigned char, unsigned short, etc.) De plus le client désirai une classe. J'ai donc une DLL basée autour d'une classe. WinDev doit instancier un objet à partir de cette classe pour accéder aux différentes méthodes et propriétés. Est ce possible ? exemple en C++ class __declspec(dllexport) MyClass { Public: MyClass(); ~MyClass();
int UneVariable; int UneFonction( unsigned char* pImage, long Width, long Height); ...... }
ensuite dans le code on doit trouver : MyClass monObjet; monObjet.UneVariable = 10; ....
Pour utiliser les chaines de caractères C (char *) il faut passer des chaines ASCIIZ.
ASCIIZ pas courant en C. Hormis pour les conversions de nombres en chaines de caractères. Il s'agit de mémoire d'avoir un NULL Terminated en fin de chaine ?
Je ne connais pas du tout WinDev, je suis codeur C/C++ depuis des lustres. Merci pour vos réponses. Philippe
Bonjour,
Pour les accès [alter]natifs et divers autres projets, nous utilisons les
DLL à tout va. Le problème de fonction appelée introuvable apprait quand
la
fonction n'existe pas dans la dll ou qu'elle est appelée avec un nombre de
paramètres différent ou de mauvais typage.
OK je ne pense que le client ai fait ce type d'erreur. Par contre y a t-il
des typages que WinDev8.0 n'aiment pas.
Je travaille dans le traitement d'images et j'ai des structures assez
importantes, tous les types possibles du C et C++
(double, float, int, unsigned char, unsigned short, etc.)
De plus le client désirai une classe. J'ai donc une DLL basée autour d'une
classe. WinDev doit instancier un objet
à partir de cette classe pour accéder aux différentes méthodes et
propriétés. Est ce possible ?
exemple en C++
class __declspec(dllexport) MyClass
{
Public:
MyClass();
~MyClass();
int UneVariable;
int UneFonction( unsigned char* pImage, long Width, long Height);
......
}
ensuite dans le code on doit trouver :
MyClass monObjet;
monObjet.UneVariable = 10;
....
Pour utiliser les chaines de caractères C (char *) il faut passer des
chaines ASCIIZ.
ASCIIZ pas courant en C. Hormis pour les conversions de nombres en chaines
de caractères.
Il s'agit de mémoire d'avoir un NULL Terminated en fin de chaine ?
Je ne connais pas du tout WinDev, je suis codeur C/C++ depuis des lustres.
Merci pour vos réponses.
Philippe
Pour les accès [alter]natifs et divers autres projets, nous utilisons les DLL à tout va. Le problème de fonction appelée introuvable apprait quand
la
fonction n'existe pas dans la dll ou qu'elle est appelée avec un nombre de paramètres différent ou de mauvais typage.
OK je ne pense que le client ai fait ce type d'erreur. Par contre y a t-il des typages que WinDev8.0 n'aiment pas. Je travaille dans le traitement d'images et j'ai des structures assez importantes, tous les types possibles du C et C++ (double, float, int, unsigned char, unsigned short, etc.) De plus le client désirai une classe. J'ai donc une DLL basée autour d'une classe. WinDev doit instancier un objet à partir de cette classe pour accéder aux différentes méthodes et propriétés. Est ce possible ? exemple en C++ class __declspec(dllexport) MyClass { Public: MyClass(); ~MyClass();
int UneVariable; int UneFonction( unsigned char* pImage, long Width, long Height); ...... }
ensuite dans le code on doit trouver : MyClass monObjet; monObjet.UneVariable = 10; ....
Pour utiliser les chaines de caractères C (char *) il faut passer des chaines ASCIIZ.
ASCIIZ pas courant en C. Hormis pour les conversions de nombres en chaines de caractères. Il s'agit de mémoire d'avoir un NULL Terminated en fin de chaine ?
Je ne connais pas du tout WinDev, je suis codeur C/C++ depuis des lustres. Merci pour vos réponses. Philippe
GPVISION
Re
> j'ai développé des DLLs en C/C++ (qui en appelle d'autres mais pas
écrites
> par mes soins) pour un client qui utilise WinDev 8.0 > Il rencontre un problème lors de l'appel des fonctions. Son logiciel lui
dit
> que la fonction appelée est introuvable. La DLL est bien > chargée.
Attention, les fonctions export sont sensibles à la casse
Qu'entendez vous par sensibles à la casse ?
Merci Philippe
Re
> j'ai développé des DLLs en C/C++ (qui en appelle d'autres mais pas
écrites
> par mes soins) pour un client qui utilise WinDev 8.0
> Il rencontre un problème lors de l'appel des fonctions. Son logiciel lui
dit
> que la fonction appelée est introuvable. La DLL est bien
> chargée.
Attention, les fonctions export sont sensibles à la casse
> j'ai développé des DLLs en C/C++ (qui en appelle d'autres mais pas
écrites
> par mes soins) pour un client qui utilise WinDev 8.0 > Il rencontre un problème lors de l'appel des fonctions. Son logiciel lui
dit
> que la fonction appelée est introuvable. La DLL est bien > chargée.
Attention, les fonctions export sont sensibles à la casse
Qu'entendez vous par sensibles à la casse ?
Merci Philippe
Manu
> OK je ne pense que le client ai fait ce type d'erreur. Par contre y a t-il des typages que WinDev8.0 n'aiment pas. Je travaille dans le traitement d'images et j'ai des structures assez importantes, tous les types possibles du C et C++ (double, float, int, unsigned char, unsigned short, etc.)
Pour cela il y a des experts API qui trainent ici. Moi, je n'utilise que int et char *. Si je dois utiliser des float je fais de sprintf :-).
De plus le client désirai une classe. J'ai donc une DLL basée autour d'une classe. WinDev doit instancier un objet à partir de cette classe pour accéder aux différentes méthodes et propriétés. Est ce possible ?
Je pense qui oui avec les fonctions windev (il y a un exemple dans une LST).
exemple en C++ class __declspec(dllexport) MyClass { Public: MyClass(); ~MyClass();
int UneVariable; int UneFonction( unsigned char* pImage, long Width, long Height); ...... }
ensuite dans le code on doit trouver : MyClass monObjet; monObjet.UneVariable = 10; ....
ce serait l'idéal...
Pour utiliser les chaines de caractères C (char *) il faut passer des chaines ASCIIZ.
ASCIIZ pas courant en C. Hormis pour les conversions de nombres en chaines de caractères. Il s'agit de mémoire d'avoir un NULL Terminated en fin de chaine ?
Oui cela dit à windev que la chaine est en "null char terminated".
Je ne connais pas du tout WinDev, je suis codeur C/C++ depuis des lustres. Merci pour vos réponses.
De rien.
> OK je ne pense que le client ai fait ce type d'erreur. Par contre y a
t-il des typages que WinDev8.0 n'aiment pas.
Je travaille dans le traitement d'images et j'ai des structures assez
importantes, tous les types possibles du C et C++
(double, float, int, unsigned char, unsigned short, etc.)
Pour cela il y a des experts API qui trainent ici. Moi, je n'utilise que int
et char *. Si je dois utiliser des float je fais de sprintf :-).
De plus le client désirai une classe. J'ai donc une DLL basée autour
d'une classe. WinDev doit instancier un objet
à partir de cette classe pour accéder aux différentes méthodes et
propriétés. Est ce possible ?
Je pense qui oui avec les fonctions windev (il y a un exemple dans une LST).
exemple en C++
class __declspec(dllexport) MyClass
{
Public:
MyClass();
~MyClass();
int UneVariable;
int UneFonction( unsigned char* pImage, long Width, long Height);
......
}
ensuite dans le code on doit trouver :
MyClass monObjet;
monObjet.UneVariable = 10;
....
ce serait l'idéal...
Pour utiliser les chaines de caractères C (char *) il faut passer des
chaines ASCIIZ.
ASCIIZ pas courant en C. Hormis pour les conversions de nombres en
chaines de caractères.
Il s'agit de mémoire d'avoir un NULL Terminated en fin de chaine ?
Oui cela dit à windev que la chaine est en "null char terminated".
Je ne connais pas du tout WinDev, je suis codeur C/C++ depuis des
lustres. Merci pour vos réponses.
> OK je ne pense que le client ai fait ce type d'erreur. Par contre y a t-il des typages que WinDev8.0 n'aiment pas. Je travaille dans le traitement d'images et j'ai des structures assez importantes, tous les types possibles du C et C++ (double, float, int, unsigned char, unsigned short, etc.)
Pour cela il y a des experts API qui trainent ici. Moi, je n'utilise que int et char *. Si je dois utiliser des float je fais de sprintf :-).
De plus le client désirai une classe. J'ai donc une DLL basée autour d'une classe. WinDev doit instancier un objet à partir de cette classe pour accéder aux différentes méthodes et propriétés. Est ce possible ?
Je pense qui oui avec les fonctions windev (il y a un exemple dans une LST).
exemple en C++ class __declspec(dllexport) MyClass { Public: MyClass(); ~MyClass();
int UneVariable; int UneFonction( unsigned char* pImage, long Width, long Height); ...... }
ensuite dans le code on doit trouver : MyClass monObjet; monObjet.UneVariable = 10; ....
ce serait l'idéal...
Pour utiliser les chaines de caractères C (char *) il faut passer des chaines ASCIIZ.
ASCIIZ pas courant en C. Hormis pour les conversions de nombres en chaines de caractères. Il s'agit de mémoire d'avoir un NULL Terminated en fin de chaine ?
Oui cela dit à windev que la chaine est en "null char terminated".
Je ne connais pas du tout WinDev, je suis codeur C/C++ depuis des lustres. Merci pour vos réponses.
> De plus le client désirai une classe. J'ai donc une DLL basée autour d'une classe. WinDev doit instancier un objet à partir de cette classe pour accéder aux différentes méthodes et propriétés. Est ce possible ?
Tests effectués, je ne pense pas que cela puisse marcher :-(
Voici ce qui marche :
-- partie dll struct st_result { int n; char s[50]; } ;
Voilà voilà, je pense que vous avez trouvé un cas ou Windev n'est pas approprié en direct. Je dis direct car rien ne vous empeche d'avoir des appels de fonctions "standard" au lieu d'utiliser une classe. Mais bon si le client l'a demandé...
-- Emmanuel
> De plus le client désirai une classe. J'ai donc une DLL basée autour d'une
classe. WinDev doit instancier un objet
à partir de cette classe pour accéder aux différentes méthodes et
propriétés. Est ce possible ?
Tests effectués, je ne pense pas que cela puisse marcher :-(
Voici ce qui marche :
-- partie dll
struct st_result
{
int n;
char s[50];
} ;
Voilà voilà, je pense que vous avez trouvé un cas ou Windev n'est pas
approprié en direct. Je dis direct car rien ne vous empeche d'avoir des
appels de fonctions "standard" au lieu d'utiliser une classe. Mais bon si le
client l'a demandé...
> De plus le client désirai une classe. J'ai donc une DLL basée autour d'une classe. WinDev doit instancier un objet à partir de cette classe pour accéder aux différentes méthodes et propriétés. Est ce possible ?
Tests effectués, je ne pense pas que cela puisse marcher :-(
Voici ce qui marche :
-- partie dll struct st_result { int n; char s[50]; } ;
Voilà voilà, je pense que vous avez trouvé un cas ou Windev n'est pas approprié en direct. Je dis direct car rien ne vous empeche d'avoir des appels de fonctions "standard" au lieu d'utiliser une classe. Mais bon si le client l'a demandé...