014
07.05.2003, 22:20 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft... (Operator)
|
Hi Christian, das frisst der Compiler zwar auch aber wenn ich auf members zugreifen will bekommen ich entweder ein readerror oder er faselt was von einem ungültigen Pointer Ich poste einfach mal den wesentlichen Teil vom Code vielleicht hilft das ja was:
C++: |
#import <mso9.dll> no_namespace rename("DocumentProperties", "DocumentPropertiesXL") #import "C:\Programme\Gemeinsame Dateien\Microsoft Shared\VBA\VBA6\vbe6ext.olb" no_namespace #import <excel9.olb> rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces
#pragma warning (disable:4192) #pragma warning (disable:4146)
#include <stdio.h> #include <tchar.h>
void dump_com_error(_com_error &e) { _tprintf(_T("Oops - hit an error!\n")); _tprintf(_T("\a\tCode = %08lx\n"), e.Error()); _tprintf(_T("\a\tCode meaning = %s\n"), e.ErrorMessage()); _bstr_t bstrSource(e.Source()); _bstr_t bstrDescription(e.Description()); _tprintf(_T("\a\tSource = %s\n"), (LPCTSTR) bstrSource); _tprintf(_T("\a\tDescription = %s\n"), (LPCTSTR) bstrDescription); }
struct StartOle { StartOle() { CoInitialize(NULL); } ~StartOle() { CoUninitialize(); } } _inst_StartOle;
void main() { using namespace Excel;
_ApplicationPtr pXL; try { if (pXL.GetInterfacePtr() == NULL) pXL.CreateInstance(L"Excel.Application.9"); //check ob es schon laeuft
pXL->Visible = VARIANT_FALSE; // oder VARIANT_TRUE wenn man sehen will was der macht WorkbooksPtr pBooks; _WorkbookPtr pBook; WorksheetsPtr pSheets; _WorksheetPtr pSheet;
pBooks= pXL->Workbooks; pBook = pBooks->Add((long)Excel::xlWorksheet); //vohandenes Dokument mit pBooks->Open("c:\\test.xls"); öffnen pSheets = pBook->GetWorksheets(); pSheet=pBook->ActiveSheet; pSheet->Name="Messwerte";
pXL->Range["Messwerte!B5"]->Value2= 35.6; pXL->Range["Messwerte!B6"]->Value2= 32.7; pXL->Range["Messwerte!B7"]->Value2= 33.6; pXL->Range["Messwerte!B8"]->Value2= 37.6; pXL->Range["Messwerte!B9"]->Value2= 34.6;
const IID IID_IMessager = {0x00020813,0x0000,0xC000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x46}}; ISeriesCollection *pscMyCollection; pXL->ActiveChart->SeriesCollection( _variant_t((long)1) )->QueryInterface(IID_IMessager, (void**)&pscMyCollection); pscMyCollection->Item( _variant_t((long)1)); //egal welchen member ich hier zugreife ich brauche noch nicht mal was zuweisen und bekomme schon einen readfehler oder er faselt was von einem ungueltigen Pointer pBook->SaveCopyAs("c:\\test.xls"); pBook->Close(false); //damit der die aktuelle nicht speichert pXL->Quit(); } catch(_com_error &e) { dump_com_error(e);
} }
|
-- ...fleißig wie zwei Weißbrote |