[RESUELTO] Ejecutar LibreOffice x64 desde C# .Net

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO] Ejecutar LibreOffice x64 desde C# .Net

Notapor jirayacr » Jue Mar 02, 2017 6:35 pm

Hola,

Estoy utilizando Windows 10 64-bit y desarrollo una aplicación C# .Net Framework 4.5, la aplicación tiene que ejecutarse en x64, por lo que, he instalado LibreOffice 5.2.3 x64 con su respectivo sdk.

Al iniciar la aplicación agrego la variable de entorno así:

Código: Seleccionar todo   Expandir vistaContraer vista
string variableEntornoPATH = Entorno.GetEnvironmentVariable ("PATH");
Environment.SetEnvironmentVariable("PATH", variableEntornoPATH + ";C:\\Program Files\\LibreOffice 5\\program;");


Sin embargo, al ejecutar la aplicación me muestra el siguiente error:

La operación aritmética ha provocado un desbordamiento.
   Es Mapping_uno2cli (_uno_Mapping * mapping, Void ** ppOut, Void * pIn, _typelib_InterfaceTypeDescription * td)
   En com.sun.star.uno.Mapping.mapInterface (Mapping *, Void ** ppOut, Void * pInterface, Type * rType)
   En uno.util.to_cli <class com :: sun :: star :: uno :: XComponentContext> (Referencia <com :: sun :: star :: uno :: XComponentContext> * x)
   En uno.util.Bootstrap.bootstrap ()


El problema es que no hay ninguna información al respecto y lo único que encontré fue el código del método aquí:

Https://github.com/LibreOffice/core/blob/master/cli_ure/source/uno_bridge/cli_bridge.cxx#L96

Por lo que se puede ver en el código, me parece que hay problemas con las banderas de pre-compilación:

Código: Seleccionar todo   Expandir vistaContraer vista
ptr= sri::GCHandle::ToIntPtr(sri::GCHandle::Alloc(cliI))
#ifdef _WIN32
                    .ToInt32();
#else /* defined(_WIN64) */                 .ToInt64();
#endif


Además, he realizado la misma prueba con las versiones 5.2.3, 5.2.5 y 5.3, pero todas me dan el mismo error.

Por otro lado, creo que es importante indicar que si lo ejecuto en x86 todo me funciona perfecto, claro usando el path "C:\\Program Files (x86)\\LibreOffice 5\\program", pero, por requerimiento del proyecto tiene que ser en x64. :(

¿Alguien tiene alguna solución?
Última edición por jirayacr el Lun Mar 13, 2017 6:12 pm, editado 3 veces en total
LibreOffice 5.2 en Windows 10
jirayacr
 
Mensajes: 6
Registrado: Vie Ene 30, 2015 8:36 pm

Re: Ejecutar LibreOffice x64 desde C# .Net

Notapor jirayacr » Lun Mar 13, 2017 6:10 pm

Buenas,

Ya la comunidad de Bugzilla me respondió y efectivamente hay un error en el código, supongo que en la próxima compilación se corrige.
Adjunto el link del issue:

https://bugs.documentfoundation.org/show_bug.cgi?id=94265#c13


Gracias,
Saludos.
LibreOffice 5.2 en Windows 10
jirayacr
 
Mensajes: 6
Registrado: Vie Ene 30, 2015 8:36 pm

Re: [RESUELTO] Ejecutar LibreOffice x64 desde C# .Net

Notapor mauricio » Lun Mar 13, 2017 7:00 pm

Mientras no entre como corrección, no esperes que salga publicada... ya dieron la solución, si te animas, puede ser tu primer pull que entre en LibreOffice...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
AOO 4.1 | LibO 6.1.5 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5787
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados