Hi Lorean, I wrote a script to generate the cpp files from the OOo 3.* SDK (and a little more for Windows VC++ users) at http://www.codeproject.com/KB/wtl/Wtl_OOo.aspx .
cheers, AR ----- Original Message ----- From: Loredan Neagu To: dev@api.openoffice.org Sent: Sunday, June 21, 2009 8:40 AM Subject: [api-dev] porting the code from SDK 2.4.1 to SDK 3.1 Hello, A few months ago I developed a Windows application based on OpenOffice.org SDK 2.4.1 that supposed to convert any *.odt files to .pdf format. The application was written in C++ and I was very excited because actually it worked very well. Recently, I have upgraded to OpenOffice.org 3.1 and installed the latest SDK. First, I have discovered that when using cppumaker application to install C++ headers, some of the .hpp and .hdl files were missing. To install the C++ headers in includecpp folder I have used the following command: cppumaker -BUCR -O <oo_sdk_path>\includecpp <oo_root>\URE\misc\types.rdb My application uses XComponentLoader and XStorable interfaces. As the XComponentLoader.hpp and XStorable.hpp files were missing, I tried to compile the XComponentLoader.idl and XStorable.idl files respectively using the following command script: idlc -C -I..\idl ...\idl\com\sun\star\frame\XComponentLoader.idl regmerge XComponentLoader.rdb /UCR <oo_sdk_path>\idl\com\sun\star\frame\XComponentLoader.urd cppumaker -BUCR -O <oo_sdk_path>\includecpp <oo_root>\URE\misc\types.rdb <oo_root>\URE\bin\XComponentLoader.rdb idlc -C -I..\idl ...\idl\com\sun\star\frame\XStorable.idl regmerge XStorable.rdb /UCR <oo_sdk_path>\idl\com\sun\star\frame\ XStorable.urd cppumaker -BUCR -O <oo_sdk_path>\includecpp <oo_root>\URE\misc\types.rdb <oo_root>\URE\bin\XStorable.rdb Finally, I got the files needed for my application to compile into the includecpp folder: #include <com/sun/star/frame/XComponentLoader.hpp> #include <com/sun/star/frame/XStorable.hpp> Now, I'm experiencing some run-time problems when trying to query for XComponentLoader interface: //get the desktop service Reference< XInterface > Desktop = OfficeServiceManager->createInstance(OUString::createFromAscii("com.sun.star.frame.Desktop")); if(Desktop == NULL || !Desktop.is()) { OutputDebugString(_T("Couldn't get the desktop service")); return false; } //query for the XComponentLoader interface Reference< XComponentLoader > rComponentLoader(Desktop, UNO_QUERY); Error message: First-chance exception at 0x7c812afb in odt2pdf.exe: Microsoft C++ exception: com::sun::star::container::NoSuchElementException at memory location 0x0121f4e0.. First-chance exception at 0x7c812afb in odt2pdf.exe: Microsoft C++ exception: com::sun::star::container::NoSuchElementException at memory location 0x0121f570.. First-chance exception at 0x7c812afb in odt2pdf.exe: Microsoft C++ exception: com::sun::star::container::NoSuchElementException at memory location 0x0121f404.. First-chance exception at 0x7c812afb in odt2pdf.exe: Microsoft C++ exception: com::sun::star::container::NoSuchElementException at memory location 0x0121f494.. First-chance exception at 0x7c812afb in odt2pdf.exe: Microsoft C++ exception: com::sun::star::container::NoSuchElementException at memory location 0x0121f408.. First-chance exception at 0x7c812afb in odt2pdf.exe: Microsoft C++ exception: com::sun::star::container::NoSuchElementException at memory location 0x0121f498.. Furthermore, when I validate the result: if(rComponentLoader == NULL || !rComponentLoader.is()) { OutputDebugString(_T("Error: XComponentLoader unsuccessfully instanciated\n")); return false; } the application freezes and a stack overflow error message pops up: Is there any SDK installation/configuration step that I have missed? I really need to fix this issue as soon as possible, so any advice will be very much appreciated. Also, is there any way to generate all the C++ source code files from the UNO IDL definitions? Thank you for your support, Loredan Neagu Software developer