SDK 4.1.1 & Visual C++ - ошибка bootstrap

Автор Pele-Saratov, 1 июля 2015, 22:23

0 Пользователи и 1 гость просматривают эту тему.

Pele-Saratov

Всем привет.

Необходимо решить задачу выгрузки данных в документы OpenOffice из приложения, написанного на С++. Желательно, решить с помощью OpenOffice SDK.

Для решения задачи использовал следующее:
- OpenOffice версии 4.1.1;
- OpenOffice SDK 4.1.1;

- Visual C++ 11.

А также, для создания заголовочных файлов из объектов SDK:
- GNU Make;
- GNU Zip;
- GNU cat.

После установки Open Office, Open Office SDK, задаю переменные окружения с помощью утилиты setsdkenv_windows.bat. После внесения всех данных, запускаю батник setsdkname.bat - переменные окружения прописаны.

Далее формирую заголовочные файлы утилитой cppumaker по пути OOSDKPath\includecpp:
cppumaker.exe -Gc -BUCR -o "OOSDKPath\includecpp" "OpenOfficePath\program\types.rdb" "OpenOfficePath\program\oovbaapi.rdb";

Команда выполняется без ошибок, заголовочные файлы формируются.


Далее, создаю обычный консольный проект Visual C++ 11. Добавляю пути к заголовочным файлам: "OOSDKPath\include" и "OOSDKPath\includecpp"; к библиотекам SDK: "OOSDKPath\lib"; к исполняемым файлам: "OpenOfficePath\program".

И пытаюсь стартовать процесс:

#define WNT 1
#define CPPU_ENV msci

#include <stdio.h>
#include <cppuhelper/bootstrap.hxx>
#include <com/sun/star/bridge/XUnoUrlResolver.hpp>
#include <com/sun/star/lang/XMultiComponentFactory.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/frame/XComponentLoader.hpp>

int main ()
{
     try
     { 
        Reference < XComponentContext > xContext = ::cppu::bootstrap();
     }
     catch ( ::cppu::BootstrapException & e )
     {
         fprintf( stderr, "caught BootstrapException: %s\n", OUStringToOString( e.getMessage(),   
                                   RTL_TEXTENCODING_ASCII_US ).getStr() );
     }
     catch ( Exception & e )
     {
         fprintf(stderr, "caught UNO exception: %s\n",
                                   OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US ).getStr());

         return NULL;

     }
     return 0;
}


И получаю следующее:
caught UNO exception: loading component library failed: bootstrap.uno.dll

Кто-нибудь сталкивался с этим? В какую сторону копать?
Пробовал использовать данную версию SDK на java - все работает.

Заранее спасибо.

Yakov


Pele-Saratov

Цитата: Yakov от  2 июля 2015, 08:25
Проблема с MSVCR**.dll?
Что с ней может быть не так? Отдельно soffice из консоли стартует. Да и загрузки других библиотек проходят на ура. Попробовать другую версию Visual С?

Yakov