|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Candidat au titre de Membre du Club
![]() Inscription : mai 2009 Messages : 50 ![]() |
Bonjour,
Je tente de récupérer une structure renseignée par ma fonction en C++, mais je n'arrive pas à faire le Mapping du côté Java pour pouvoir l'utiliser à travers ma DLL. Mon programme en C++ s'exécute bien, j'arrive à récupérer les données de ma structure pour les traiter. Entete de ma fonction en C++ et la structure que je dois récupérer : Code :
Code :
Code :
Code :
Ma version de Java est la 7.1 (JR7) Merci |
||||||||
|
|
00
|
|
|
#2 | ||
|
Membre du Club
![]() John BastInscription : février 2012 Messages : 59 ![]() |
Salut
Je suis aussi en plein dans les DLL, SO avec des structures, des pointeurs, des fonctions pointer dans les structures et j'en passe ^^. Alors cette erreur survient fréquemment chez moi aussi. C'est tout simplement que ton code Java n'est pas le même que t'as DLL ou SO. Alors soit c'est ton code Java qui à un problème ou soit ton code contenu dans la DLL. Le JRE détecte le problème car l'allocation mémoire est diffèrenente ->Structure c != structure Java = oui et ben il plante. Ici, c'est ton code Java le problème je crois..... Code :
Tu dois mettre dans ton interface "methodesC" tout ce que tu reprends de ta DLL(ce qui te sert) avec exactement les même noms des méthodes, ect. Aussi le nom de ton interface doit être le même que le header que tu mappes (Je ne suis pas sur à 100% que c'est obligatoires, mais au moins c'est clair) Le mapping de ta structure doit être dans ton interface aussi. Le chargement de la librairie doit être en-dehors de ton interface parce quand tu charges la librairie, il va se demander ce que c'est et à quoi ce la correspond "Native....". Pour les pointeurs, il les prend tranquille sans se poser de question mais bon j'ai pas encore eu le cas avec le double pointeurs... Sinon quand tu as des soucis avec JNA, tu commences par une petit DLL avec juste tes simples données et après tu grossis ta DLL tant que ça marche. Voilà, j'espère que je me suis bien exprimé et je suis compréhensible. Bon vu que cela fait un moi, je suppose que tu as déjà trouvé la solution ^^. Bonne chance, |
||
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Ingénieur développement logiciels Inscription : avril 2012 Messages : 15 ![]() |
Bonjour c'est pas un élément de réponse sauf que je voici mon problème.
je travaille sur un projet de modélisation et la 1ère partie consiste à partir du code source existant en "c", écrire un programme JAVA qui permettra de récupérer les informations nécessaires telles que:Structures, Fonction et arguments qui seront exploitable par la suite. dans un premier temps mon souci c'est de les récupérer et les afficher. la question de comment les afficher principalement sous forme de classe en java, si vous pouvez aussi me donner des éléments de réponse ce sera avec plaisir.à savoir quel API java permet de le faire, ou, existe t-il un code déjà réalisé par quelqu'un d'autre? Merci! |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() John BastInscription : février 2012 Messages : 59 ![]() |
Salut,
Tu connaîtras les structures et les fonctions à l'avance quand même? :p |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Ingénieur développement logiciels Inscription : avril 2012 Messages : 15 ![]() |
Oui pas de soucis sur ce point!
|
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() John BastInscription : février 2012 Messages : 59 ![]() |
Donc tu cherches comment faire des structures, des appelles de fonction à partir d'une librairie dynamique comme ici au-dessus? Parce qu'il y a déjà quelques trucs intéressant.
Maintenant, je peux te refaire un exemple d'une structure et des fonctions pour manipuler la structure en c et faire appel à JNA pour les utiliser en Java... |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Ingénieur développement logiciels Inscription : avril 2012 Messages : 15 ![]() |
en fait j'ai installer CDT environnement (c/c++) sous eclipse car c'est mon ide.
donc là j'ai crée un projet c contenant des structures, type énuméré, fonctions. ce que je veux c'est ecrire un code java qui permettra de recupérer ces informations (structures, fonctions, enumération) contenu dans mon fichier c et les afficher. j'espère être claire! merci! |
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() John BastInscription : février 2012 Messages : 59 ![]() |
Oui, ca l'est
Je te montre cela demain. Bonne soirée. |
|
|
00
|
|
|
#9 | ||||||
|
Membre du Club
![]() John BastInscription : février 2012 Messages : 59 ![]() |
Salut,
Tout d'abord excuse-moi pour le retard ><. Voilà plusieurs testes de manipulation ou d'affichage surtout. Il y a des manipulation de pointeur, de tableau, de fonction, de structure, d'union et d'énumération. Header c : Code :
Code :
Code :
Moi, pour faire la DLL sous Windows, j'utilise le compilateur MinGW32 avec la commande "gcc -Wall -shared test.c -o Structure.dll" Voilà j’espère que c'est quand même clair et avec tout cela je pense qu'on peut faire beaucoup Merci à toi |
||||||
|
|
10
|
|
|
#10 |
|
Invité régulier
![]() Ingénieur développement logiciels Inscription : avril 2012 Messages : 15 ![]() |
Merci pour ton code et ça m'aidera bcp pour la 1ère partie d mon projet.
bon en fait mon projet c'est de créer un modèle UML contenant les différents diagrammes(les plus importants)à partir d'un d'un code source( langage c) existant. mon problème est: sachant que le projet est organisé en répertoires et sous répertoires, bref une arborescence contenant les fichiers sources, comment faire pour parcourir l'arborescence, accéder aux fichiers et pourvoir extraire les informations qui me permettront de réaliser mes diagrammes(séquences, classes, etc.)? quelles notions sont susceptibles d'intervenir pour la réalisation du projet? l'utilisation de la JNA est-elle indispensable? pour ce faire je me suis déjà un peu penché sur les notions de: méta-modèle, parser, que je ne sais pas si elles pourraient être des solutions potentielles! merci d'avance! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com