J'ai un lexer créé avec flex (cygwin). Normalement, je le compile dans un fichier .exe.Compilation de fichiers flex dans dll
Pour le nouveau projet je besoin d'un lexer à utiliser dans un plus grand programme C# fonctionnant sous Windows XP. Bien sûr, je peux exécuter un fichier en utilisant System.Diagnostics.Process. Mais ce n'est pas la meilleure solution pour moi car je veux que ce programme s'exécute sur plusieurs machines.
Comment puis-je créer une dll sous Cygwin ayant le code source du lexer?
Merci à l'avance ... Szpilona
Eh bien, j'ai déjà essayé cela. Précisément je courais flex sur ma grammaire, puis compilé le fichier c obtenu avec: gcc -c lekser.c gcc -o -shared lekser.dll lekser.o fichier dll a été créé, mais il ne fonctionne pas. J'ai essayé d'accéder à la bibliothèque en utilisant le code: [DllImport ("lekser.dll")] yylex int extern public static(); mais l'exception DllNotFoundException s'est produite. Le fichier, à coup sûr, est placé dans le bon répertoire et le code C# est correct (au moins cela fonctionne avec une autre DLL que j'ai créée pour le tester). C'est pourquoi je pensais qu'il y avait une option nécessaire lors de l'exécution de flex sur le fichier de grammaire. – Szpilona
La DLL est-elle dans votre PATH? Cette exception est un type d'exception "fichier trouvé trouvé". – codenheim