StackOverflow

19/12/2006 - 10:37 por moga | Informe spam
Hola,
Tengo una libreria hecha en C que uso de forma externa desde C#,
(DllImort).
El caso es que, al llamar a cualquier método aparece el error "Stack
Overflow". Y no encuentro la forma de solucionarlo.
Tengo el codigo de C, por lo que podria recompilar la libreria. He
probado varias alternativas de compilación y no hay manera. Tampoco se

si el problema es de la libreria o del programa C#.

He estado mirando por foros temas sobre la pila. Parece que podria
solventarse aumentando el espacio de pila del programa en C#; pero no
parece que exista una opción para aumentar la pila en C#.


¿A alguien le ha ocurrido algo por el estilo? ¿Podriais ayudarme?


Saludos,
Jose Luis
 

Leer las respuestas

#1 Juan.Gomez
20/12/2006 - 07:35 | Informe spam
[DllImport("mvaicvox.dll")]
public static extern int newcall(int pchannel, IntPtr vduid);



Luego declarar algunas variables del tipo:
IntPtr szvdui;
Para paramtros de entrada/salida usas IntPtr (este es el caso de un
parametro de entrada/salida entero).
Para paramtros de entrdra usas los tradicionales: int, string, etc...

Esto para variables donde szvdui es un apuntador que en C usamos como int
*variable.

Luego para usar tu funcion externa:

szvdui = Marshal.AllocHGlobal(60);
ret = newcall(pchannel, szvdui);

Notas que tanto ret, pchannel son enteras (ints), porque asi son declaras
tanto en la funcion newcall que es una funcion externa tambien creada en C
(como libreria).

Prueba y me cuentas:
, Skype: PrismSC, Googletalk:
www.prismsc.com

Nota:
He creado muchas librerias con esta tecnologia y librerias externas, por lo
cual no dudes en consultarme para apoyarte.

"moga" wrote in message
news:
Hola,
Tengo una libreria hecha en C que uso de forma externa desde C#,
(DllImort).
El caso es que, al llamar a cualquier método aparece el error "Stack
Overflow". Y no encuentro la forma de solucionarlo.
Tengo el codigo de C, por lo que podria recompilar la libreria. He
probado varias alternativas de compilación y no hay manera. Tampoco se

si el problema es de la libreria o del programa C#.

He estado mirando por foros temas sobre la pila. Parece que podria
solventarse aumentando el espacio de pila del programa en C#; pero no
parece que exista una opción para aumentar la pila en C#.


¿A alguien le ha ocurrido algo por el estilo? ¿Podriais ayudarme?


Saludos,
Jose Luis

Preguntas similares