Ayuda desesperada

13/01/2006 - 21:56 por Daniel Kurman | Informe spam
Señores. Hace tiempo ya que estoy intentando armar un decodificador de tonos
DTMF a traves de la placa de sonido de la PC, que me han pedido. He
estudiado sobre el algoritmo de Goertzel, pero no he logrado que funcione.
Tengo, a su vez, un ejemplo funcionando en c++, en forma de windows
application, por lo que tampoco sé como pasarlo a dll para poder llamarlo
desde mi programa en C#.

Si alguien sabe como hacerlo, o tiene algún ejemplo, le agradecería que me
lo pase, dado que estoy con los tiempos ya vencidos para la entrega.

Muchas gracias

Daniel

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
14/01/2006 - 22:23 | Informe spam
Daniel,

Asumo que del programa C++ no tienes el código fuente, ¿no? Si lo tuvieras,
no debería ser nada difícil...
Te paso varias ideas, todas un poco "raras" porque del algoritmo de Goetzel
no tengo ni idea:
a) En principio lo de convertir la aplicación Windows en DLL está difícil,
precisamente por el hecho de que los EXEs y DLLs de Windows no incluyen
suficientes metadatos (algo que han resuelto en .NET :-) ¿Has examinado la
cabecera del EXE con TDUMP (creo que viene incluido en el compilador de
Borland C++, que se descarga gratuitamente de Borland)? En todo caso con eso
podrías ver qué procedimientos hay para hacerles PInvoke, pero habría que
averiguar los parámetros (esto sólo veo posible hacerlo ejecutando paso a
paso el código a baojo nivel, algo smament laborioso).
b) Y si desde C# lanzaras la aplicación Windows (con Process.Start()),
"empujando" en el teclado los caracteres necesarios para hacer que ésta
reproduzca el fichero que te interesa? La API de Windows tiene una función
que permite simular la pulsación de teclas:

http://www.pinvoke.net/search.aspx?...namespace=[All]

c) ¿Has visto este enlace:
http://gathering.tweakers.net/forum.../23570010? Está en alemán,
pero a lo mejor el agoritmo en C# te dice algo :-)

Un consejo (sacado de la propia experiencia) - tómalo con calma y no te
atormentes, verás cómo al final lo resuelves...

Salu2 - Octavio



"Daniel Kurman" escribió en el mensaje
news:%
Señores. Hace tiempo ya que estoy intentando armar un decodificador de
tonos
DTMF a traves de la placa de sonido de la PC, que me han pedido. He
estudiado sobre el algoritmo de Goertzel, pero no he logrado que funcione.
Tengo, a su vez, un ejemplo funcionando en c++, en forma de windows
application, por lo que tampoco sé como pasarlo a dll para poder llamarlo
desde mi programa en C#.

Si alguien sabe como hacerlo, o tiene algún ejemplo, le agradecería que me
lo pase, dado que estoy con los tiempos ya vencidos para la entrega.

Muchas gracias

Daniel


Respuesta Responder a este mensaje
#2 Daniel Kurman
14/01/2006 - 23:00 | Informe spam
Gracias Octavio. El programa, tengo los fuentes y todo. El tema es que no
tengo el proyecto y no pude reproducirlo puesto que me da errores de links
externos y eso, de lo cual no tengo idea. Respecto al link en alemán, lo
veré, aunque creo que ya lo he visto.

Algunas cosas he pasado desde C++ a C#, pero sin buenos resultados. Ese me
gustaba, por que sé que funciona, puesto que también tengo el exe y
funciona.

Nuevamente, muchas gracias.

"Octavio Hernandez" wrote in message
news:
Daniel,

Asumo que del programa C++ no tienes el código fuente, ¿no? Si lo


tuvieras,
no debería ser nada difícil...
Te paso varias ideas, todas un poco "raras" porque del algoritmo de


Goetzel
no tengo ni idea:
a) En principio lo de convertir la aplicación Windows en DLL está difícil,
precisamente por el hecho de que los EXEs y DLLs de Windows no incluyen
suficientes metadatos (algo que han resuelto en .NET :-) ¿Has examinado la
cabecera del EXE con TDUMP (creo que viene incluido en el compilador de
Borland C++, que se descarga gratuitamente de Borland)? En todo caso con


eso
podrías ver qué procedimientos hay para hacerles PInvoke, pero habría que
averiguar los parámetros (esto sólo veo posible hacerlo ejecutando paso a
paso el código a baojo nivel, algo smament laborioso).
b) Y si desde C# lanzaras la aplicación Windows (con Process.Start()),
"empujando" en el teclado los caracteres necesarios para hacer que ésta
reproduzca el fichero que te interesa? La API de Windows tiene una función
que permite simular la pulsación de teclas:

http://www.pinvoke.net/search.aspx?...namespace=[All]

c) ¿Has visto este enlace:
http://gathering.tweakers.net/forum.../23570010? Está en alemán,
pero a lo mejor el agoritmo en C# te dice algo :-)

Un consejo (sacado de la propia experiencia) - tómalo con calma y no te
atormentes, verás cómo al final lo resuelves...

Salu2 - Octavio



"Daniel Kurman" escribió en el mensaje
news:%
> Señores. Hace tiempo ya que estoy intentando armar un decodificador de
> tonos
> DTMF a traves de la placa de sonido de la PC, que me han pedido. He
> estudiado sobre el algoritmo de Goertzel, pero no he logrado que


funcione.
> Tengo, a su vez, un ejemplo funcionando en c++, en forma de windows
> application, por lo que tampoco sé como pasarlo a dll para poder


llamarlo
> desde mi programa en C#.
>
> Si alguien sabe como hacerlo, o tiene algún ejemplo, le agradecería que


me
> lo pase, dado que estoy con los tiempos ya vencidos para la entrega.
>
> Muchas gracias
>
> Daniel
>
>


Respuesta Responder a este mensaje
#3 Octavio Hernandez
14/01/2006 - 23:50 | Informe spam
Daniel,

Teniendo los fuentes de C++, no debería ser difícil hacer una DLL que
exporte una función que pueda ser llamada desde C# con PInvoke, sacando la
parte donde se ejecuta el algoritmo y compilándola. Si no es problema que me
envíes los fuentes, podría ayudarte en eso...

Slds - Octavio

"Daniel Kurman" escribió en el mensaje
news:
Gracias Octavio. El programa, tengo los fuentes y todo. El tema es que no
tengo el proyecto y no pude reproducirlo puesto que me da errores de links
externos y eso, de lo cual no tengo idea. Respecto al link en alemán, lo
veré, aunque creo que ya lo he visto.

Algunas cosas he pasado desde C++ a C#, pero sin buenos resultados. Ese me
gustaba, por que sé que funciona, puesto que también tengo el exe y
funciona.

Nuevamente, muchas gracias.

"Octavio Hernandez" wrote in message
news:
Daniel,

Asumo que del programa C++ no tienes el código fuente, ¿no? Si lo


tuvieras,
no debería ser nada difícil...
Te paso varias ideas, todas un poco "raras" porque del algoritmo de


Goetzel
no tengo ni idea:
a) En principio lo de convertir la aplicación Windows en DLL está
difícil,
precisamente por el hecho de que los EXEs y DLLs de Windows no incluyen
suficientes metadatos (algo que han resuelto en .NET :-) ¿Has examinado
la
cabecera del EXE con TDUMP (creo que viene incluido en el compilador de
Borland C++, que se descarga gratuitamente de Borland)? En todo caso con


eso
podrías ver qué procedimientos hay para hacerles PInvoke, pero habría que
averiguar los parámetros (esto sólo veo posible hacerlo ejecutando paso a
paso el código a baojo nivel, algo smament laborioso).
b) Y si desde C# lanzaras la aplicación Windows (con Process.Start()),
"empujando" en el teclado los caracteres necesarios para hacer que ésta
reproduzca el fichero que te interesa? La API de Windows tiene una
función
que permite simular la pulsación de teclas:

http://www.pinvoke.net/search.aspx?...namespace=[All]

c) ¿Has visto este enlace:
http://gathering.tweakers.net/forum.../23570010? Está en
alemán,
pero a lo mejor el agoritmo en C# te dice algo :-)

Un consejo (sacado de la propia experiencia) - tómalo con calma y no te
atormentes, verás cómo al final lo resuelves...

Salu2 - Octavio



"Daniel Kurman" escribió en el mensaje
news:%
> Señores. Hace tiempo ya que estoy intentando armar un decodificador de
> tonos
> DTMF a traves de la placa de sonido de la PC, que me han pedido. He
> estudiado sobre el algoritmo de Goertzel, pero no he logrado que


funcione.
> Tengo, a su vez, un ejemplo funcionando en c++, en forma de windows
> application, por lo que tampoco sé como pasarlo a dll para poder


llamarlo
> desde mi programa en C#.
>
> Si alguien sabe como hacerlo, o tiene algún ejemplo, le agradecería que


me
> lo pase, dado que estoy con los tiempos ya vencidos para la entrega.
>
> Muchas gracias
>
> Daniel
>
>






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida