[OpenOffice SDk, Vista 64] Problemen met cli_cppuhelper

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik gebruik VS2010 om een winform applicatie te maken.
Een onderdeel daarvan is dat ik een OpenOffice Calc document ga maken en data uit een database er in ga zetten.
Ik heb daarvoor de OO SDK (v3.3) gedownload en de 5 cli_*.dll als reference toegevoegd aan mijn applicatie.
Ik heb wat voorbeeldcode gevonden die om te beginnen een nieuw document maakt en de eerste cel vult met een waarde.

Ik compileerde mijn applicatie als x64 voor .NET v4, omdat ik werk op een Vista 64-Bit machine.
Dit compileert wel, maar dan krijg ik een badimage tijdens run-time.
Na Googlen kwam ik er achter dat de OO cli dlls for x86 zijn gecompileerd.
Vervolgens heb ik mijn project omgezet en compileer ik nu voor x86 en voor .NET 3.5, maar nu krijg ik deze foutmelding:
code:
1
Could not load file or assembly 'cli_cppuhelper, Version=1.0.20.0, .... The system cannot find the file specified.


Ook hier op gezocht en hele volksstammen hebben hetzelfde probleem. Het heeft te maken met mijn 64-bit OS, maar OO zelf werkt wel gewoon.
Niemand had een oplossing.

Er moet toch een manier zijn om een OO Calc document te maken met C# op een 64-Bit OS?
Iemand een idee?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben vandaag opnieuw begonnen.
Ipv de code toe te voegen aan mijn bestaande applicatie, probeer ik nu eerst om een nieuwe applicatie te maken die een Calc document maakt en gegevens in een sheet invult.

Door te beginnen met een nieuw .NETv3.5 WinForm solution, kan ik inmiddels een Calc document maken en tonen. Alleen het invullen van waarden gaat nog niet.
Ik gebruik de samples die bij de SDK zitten, hopende dat die werken.

Het gaat allereerst fout bij het ophalen van de sheet. Ik gebruik deze code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    /** Returns the spreadsheet with the specified index (0-based).
        @param nIndex  The index of the sheet.
        @return  XSpreadsheet interface of the sheet. */
    public unoidl.com.sun.star.sheet.XSpreadsheet getSpreadsheet( int nIndex )
    {
        // Collection of sheets
        unoidl.com.sun.star.sheet.XSpreadsheets xSheets =
            mxDocument.getSheets();
        
        unoidl.com.sun.star.container.XIndexAccess xSheetsIA =
            (unoidl.com.sun.star.container.XIndexAccess) xSheets;
        
        unoidl.com.sun.star.sheet.XSpreadsheet xSheet =
            (unoidl.com.sun.star.sheet.XSpreadsheet)
              xSheetsIA.getByIndex( nIndex ).Value;
        
        return xSheet;
    }


Het gaat fout op regel 15, daar krijg ik een Invalid cast exception: {"Return argument has an invalid type."}
Via Google gevonden dat meer mensen hier last van hebben, maar ook nu worden er geen oplossingen aan gedragen.

Als het zo doorgaat, moet ik straks nog MS Office installeren om dit voor elkaar te krijgen! Dit is uiteraard niet de bedoeling. |:(

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Opgelost!

Het probleem zat er in dat ik OpenOffice v3.2 gebruikte samen met de SDK v3.3.
Die liggen mekaar niet.
Ik heb mijn OO geupgrade naar v3.3 en nu werkt het voorbeeld.

Nu kan ik eindelijk beginnen aan mijn applicatie en data en plaatjes toevoegen aan mijn Calc document.