I've got a lexer created with flex (under cygwin). Normally I compile it to an .exe file.

For the newest project I need a lexer to use in a bigger C# program running on Windows XP. Of course I can execute a file using System.Diagnostics.Process. But it is not the best solution for me as I want that program to run on several machines.

How can I create a dll having the source code of the lexer?

I've already tried to run flex on my grammar and then compile the obtained c file with:

gcc -c lekser.c 
gcc -shared -o lekser.dll lekser.o

Dll file was created but it does not work. I've tried to access the library using the code:

[DllImport("lekser.dll")] public static extern int yylex();

but the DllNotFoundException occured. The file, for sure, is placed in the right directory and the C# code is correct (at least it works with another dll I've created to test this).

Thanks in advance...

Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.