ExcelApplication in Static Library ?
-
Hallo zusammen,
ich bin dabei ein Programm zu schreiben welches Messwerte verarbeitet und in Excel ausgibt. Soweit so gut. Nun möchte ich jedoch die Berechnungen in eine static Library verschieben. Am Ende hätte ich gerne sehr sehr wenig Quellcode.
Ist es möglich ExcelApplication, ExcelWorkbook und ExcelWorksheet an die static Library zu übergeben ? In der static Library bekomme ich immer den Fehler: Undefiniertes Symbol ExcelApplication. Ich habe bereits alle Bibliotheken hierzu eingebunden.
Kennt jemand eine Lösung ? Anbei ein schematisches Bespiel zu meinem Anliegen.
Ziel ist eine Funktion an die Werte übergeben werden können welche die Berechnung und den Eintrag in Excel übernimmt.
Bsp: double Calc (double a, double b)[code="cpp"]
//---------------------------------------------------------------------------#include <vcl.h>
#pragma hdrstop#include "excelproblem.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "Excel_XP_srvr"
#pragma resource "*.dfm"
TForm4 Form4;
//---------------------------------------------------------------------------
__fastcall TForm4::TForm4(TComponent Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm4::Button1Click(TObject *Sender)
{// Deklaration der Variablen
float ergebnis;
float eins = StrToFloat (Edit1->Text);//Berechnung
ergebnis = eins + 100;// Öffnen von Excel und Eintrag der Berechnung in die Zelle A1
ExcelApplication1->Connect();
ExcelApplication1->Visible [0] = true;ExcelApplication1->Workbooks->Add();
ExcelWorkbook1->ConnectTo(ExcelApplication1->ActiveWorkbook);
ExcelWorksheet1->ConnectTo(ExcelApplication1->ActiveSheet);ExcelWorksheet1->Cells->set_Item(TVariant(1),TVariant ("A"),TVariant (ergebnis));
}
//---------------------------------------------------------------------------Vielen Dank schon mal im Voraus und einen guten Start in die Woche !!!
P.S. Ich programmiere mit dem C++ Builder XE5
-
Also, grundsätzlich ist es völlig egal, obs eine static Library, dynamic Library oder eine exe Datei ist.
Hast du das in irgendeiner anderen Form zum Laufen bekommen? Was ist der Unterschied?Auf den ersten Blick schaut dein Ansatz aber irgendwie falsch aus. Die Berechnung auslagern - OK. Aber Ausgabe an Excel ist etwas völlig unabhängiges von der Berechnung. Du könntest die Ergebnisse irgendwann ja auch als HTML rausschreiben oder an einen Webservice schicken wollen. Sowas sollte man nicht vermischen. Von dem her würde ich es besser finden, wenn du nicht irgendwelche Excel Objekte an deine Berechnungs Lib übergeben würdest, sondern die Ausgabe z.B. in der Host Anwendung machen würdest, oder in einer anderen Lib.