J'utilise SWIG pour faire fonctionner mon code C sur php ... Mais je ne sais pas comment écrire une bonne interface basée sur mon code C pour passer à SWIG. Est-ce que quelqu'un peut m'aider? Le lien pour voir à quoi ressemble mon code C est celui-ci: http://www.pastie.org/1739618 Merci beaucoup pour votre aideComment concevoir mon interface pour SWIG?
Répondre
Vous devez déplacer vos prototypes de fonction dans un fichier d'en-tête séparé. SWIG peut traiter cela et générer les choses nécessaires pour vous. Vous pouvez suivre le SWIG tutorial et particulièrement faire attention à la section SWIG pour le vraiment paresseux qui montre comment vous pouvez éviter d'avoir à maintenir un fichier d'interface SWIG séparé. Combinez ceci avec les informations de la page SWIG and PHP et vous devriez être capable de faire fonctionner les choses. Notez que SWIG ne supporte pas PHP4.
Peut-être que vous pouvez commencer par essayer quelque chose comme ce qui suit et à l'utiliser comme l'entrée à la commande swig
:
/* optim_wizard_5.h */
#ifdef SWIG
%module optim_wizard_5
%{
#include "optim_wizard_5.h"
%}
#endif
/* Function prototypes to define later */
void *getCpc(void *ptr);
float getCpc_max(float *arg);
char *do_web_request(char *url);
size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp);
float request_cpc();
Certaines choses qui souvent ne fonctionnent pas bien dans plusieurs langues, avec l'utilisation de SWIG :
- ne pas jeter les exceptions en dehors de l'interface que vous souhaitez exposer à SWIG
- ne pas retourner ou besoin en tant que paramètres, tableaux C-premières dans l'interface que vous présentez. (Enveloppez-les dans des structures de préférence)
- Ecrivez les fichiers d'interface SWIG qui incluent les fichiers d'en-tête que vous souhaitez exposer dans votre interface à PHP. N'insérez pas SWIG #ifdefs dans le code C lui-même ...
- 1. Comment/Quand concevoir une interface?
- 2. Quel cadre pour concevoir cette interface web?
- 3. Comment concevoir une interface API propre?
- 4. Comment concevoir une interface d'application IPhone?
- 5. comment concevoir cette interface utilisateur dans Android
- 6. Comment faire pour concevoir une interface comme celle-ci
- 7. Comment concevoir une interface pour le confinement Muliple
- 8. Comment concevoir une interface utilisateur pour créer des expressions conditionnelles?
- 9. Comment concevoir une interface graphique légère pour Windows?
- 10. Comment générer une interface multi-plateforme avec SWIG?
- 11. Je veux concevoir une interface utilisateur de style métro pour mon application Android
- 12. Concevoir des documents pour mon ravendb nosql
- 13. Comment tracer sur mon interface graphique
- 14. IronPython pour l'interface python SWIG
- 15. Comment puis-je concevoir mon logiciel pour les raccourcis raccourcis?
- 16. comment concevoir un modèle pour mon cas avec django?
- 17. Comment concevoir pour l'extension
- 18. Comment concevoir cette interface utilisateur sous Android? Ce
- 19. SWIG interface JNI avec DLL et déclarations seulement
- 20. comment utiliser les contrôles opensource dans mon interface utilisateur
- 21. mise en œuvre Interface pour mon projet
- 22. Comment faire pour que mon interface graphique fonctionne
- 23. Comment dois-je construire mon interface graphique en Qt?
- 24. Comment concevoir une bonne et agréable interface graphique pour une application Android?
- 25. Comment concevoir XML Interface de service Restful pour le téléchargement de fichiers?
- 26. Comment concevoir le rendu d'une nouvelle interface utilisateur pour le moteur de quiz
- 27. Concevoir une interface utilisateur similaire à GO SMS Pro
- 28. Comment redescendre correctement en C# avec une interface générée par SWIG?
- 29. Comment concevoir plusieurs appels WCF?
- 30. Obtenir Concevoir de reconnaître mon module d'authentification
J'ai fait quelque chose comme ça basé sur SWIG TUTORIAL et SWIG et PHP page mais il y a des méthodes fournies par libcurl qui ne sont pas supportées et aussi longtemps que il y a beaucoup de pointeurs dans mon code, il devient difficile de dire à SWIG comment les gérer. – user683831
libcurl ne devrait pas importer dans ce cas. SWIG doit seulement générer du code pour vos propres fonctions. Selon [this] (http://www.swig.org/Doc2.0/SWIG.html#SWIG_nn15) SWIG peut gérer les pointeurs très bien. – trenki
Pourquoi ne pas écrire le code directement en PHP? PHP supporte également libcurl. – trenki