Word und mfc-Anwendung

Hi,

ich würde gerne eine MFC-Anwendung schreiben, welche aus Word heraus startbar sein soll.
Dabei sollen einige Daten aus Word an die Anwendung übergeben werden und die Anwendung soll einen Text zurückliefern, der in ein neues Dokument eingepflegt wird.

Weiß jemand wie das geht?

Besten Dank

Winni

Hallo Winni,

ich würde gerne eine MFC-Anwendung schreiben, welche aus Word
heraus startbar sein soll.
Dabei sollen einige Daten aus Word an die Anwendung übergeben
werden und die Anwendung soll einen Text zurückliefern, der in
ein neues Dokument eingepflegt wird.

Weiß jemand wie das geht?

Da gibt es mehrere Möglichkeiten, wobei das eigentlich nichts mit MFC zu tun hat:

  1. Du schreibst eine normale .DLL und rufst dann die einzelnen Funktionen aus VBA wie bei jeder anderen .DLL auf
  2. du verwendest DDE (überholt)
  3. du verwendest OLE (überholt)
  4. Du schreibst dein Programm als ActiveX-Componente. (sollte für deine Anwendung reichen)
  5. Du verwendest COM oder DCOM (das ist die Weiterentwicklung von ActivX und die aufgerufene Anwendung kann auch auf einem anderen Computer im Netzwerk ausgeführt werden, ist aber etwas komplizierter als eine ActiveX-Komponente).

Zusätzlich stellt sich aber die Frage mit welcher Programmiersprache und -umgebung du diese Anwendung schreiben willst.

MfG Peter(TOO)

Hi Peter,

ich habe das MS VS 6 zur Verfügung und es sollte C sein.

Die Software (Windows-Anwendung halt MFC) sollte entweder aus Word gestartet werden und den Text in ein neues Dokument übertragen oder standalone gestartet werden können und dann den text in ein txt-File schreiben.

Ist so ein Vorhaben sehr aufwändig?
(die Software hat es intern schon in sich, ich will ja nur die Oberfläche zu basteln)

Gruß

Winni

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Winni,

ich habe das MS VS 6 zur Verfügung und es sollte C sein.

Die Software (Windows-Anwendung halt MFC) sollte entweder aus
Word gestartet werden und den Text in ein neues Dokument
übertragen oder standalone gestartet werden können und dann
den text in ein txt-File schreiben.

Also MFC ist eine Bibliothek, welche, unter anderem, ein Layer über die Windows-API legt. Allerdings ist die MFC so mächtig, dass du diese erst einmal erlenen musst. Zudem macht die MFC eigentlich erst mit C++ wirklich Sinn.

Ist so ein Vorhaben sehr aufwändig?
(die Software hat es intern schon in sich, ich will ja nur die
Oberfläche zu basteln)

Also VB oder VBA und C ist so eine Geschichte.
Für meine ANwendungen mag ich die MFC nicht, weil sie zu komplex ist, ich verwende meistens die ATL.
Allerdings gibt es da Dinge, welche in der Literatur als unmöglich beschrieben werden (z.B. die Rückgabe von variablen Arrays an VB aus C) welche aber machbar sind. Allerdings musst du aus C heraus vieles selber machen, was z.B. in VB lächerlich einfach ist.

Wie aufwändig das ganze wird hängt zuerst einmal von deinen Fähigkeiten und deinem Wissen ab.

MfG Peter(TOO)

Hi Peter

Hallo Winni,

ich habe das MS VS 6 zur Verfügung und es sollte C sein.

Die Software (Windows-Anwendung halt MFC) sollte entweder aus
Word gestartet werden und den Text in ein neues Dokument
übertragen oder standalone gestartet werden können und dann
den text in ein txt-File schreiben.

Also MFC ist eine Bibliothek, welche, unter anderem, ein Layer
über die Windows-API legt. Allerdings ist die MFC so mächtig,
dass du diese erst einmal erlenen musst. Zudem macht die MFC
eigentlich erst mit C++ wirklich Sinn.

Ich meinte ja auch C++ :wink:

Ist so ein Vorhaben sehr aufwändig?
(die Software hat es intern schon in sich, ich will ja nur die
Oberfläche zu basteln)

Also VB oder VBA und C ist so eine Geschichte.
Für meine ANwendungen mag ich die MFC nicht, weil sie zu
komplex ist, ich verwende meistens die ATL.
Allerdings gibt es da Dinge, welche in der Literatur als
unmöglich beschrieben werden (z.B. die Rückgabe von variablen
Arrays an VB aus C) welche aber machbar sind. Allerdings musst
du aus C heraus vieles selber machen, was z.B. in VB
lächerlich einfach ist.

Die Frage ist, ob ich in VB/VBA die Twain-Schnittstelle gut ansteuern kann (ich weiß, daß es irgendwie unter C geht, nur noch nicht, WIE) und ob ich da auch die Bildverarbeitung (s.o.) umsetzen kann. (diese wird mit Hilfe von Matlab erstellt)

Wie aufwändig das ganze wird hängt zuerst einmal von deinen
Fähigkeiten und deinem Wissen ab.

MFC und C++ habe ich schon geschnuppert, VB und VBA kenne ich gar nicht. Und da das ne Studienarbeit für das laufende Semester werden soll, will ich nicht erst eine neue Sprache erlernen.

MfG Peter(TOO)

Grüßle

Winni

Hallo winni the pu

ich würde gerne eine MFC-Anwendung schreiben, welche aus Word
heraus startbar sein soll. Dabei sollen einige Daten aus Word
an die Anwendung übergeben werden und die Anwendung soll einen
Text zurückliefern, der in ein neues Dokument eingepflegt wird.

Also Du willst Folgendes, wenn ich richtig zugehört habe:

    • irgendein Programm haben, das Daten nimmt,
      irgend etwas damit macht und wieder Daten schreibt,
    • ein Word-Makro haben, das dieses Programm aus
      einem laufenden Word startet.

Das hört sich an sich erstmal recht einfach an.

Du musst Dir über folgendes klarwerden:

a) Welcher Art sind die „Daten“ im Word? Ein Absatz
oder sowas?

b) wie soll der Datenaustausch stattfinden?
Vorschlag: über zwei Textdateien ‚\temp\word2prog.txt‘
und ‚\temp\prog2word.txt‘.

c) wie soll die Ablaufsequenz ausssehen?
Vorschlag:

  • Absatz markieren

  • Makro mit Tastenkombination starten, welches
    markierten Text erfasst (simpel) und in eine
    Textdatei speichert (simpel) und über ‚shell‘
    das Programm starten (trivial,

    Dim result
    result = Shell(„C:\TEST\MFCPROG.EXE“, 1)

Wie es weitergeht, hängt davon ab, was genau
Du eigentlich machen wolltest.

Deine MFC(oder sonstwie-)Anwendung braucht also
nur beim Start eine Datei ‚word2prog.txt‘
zu öffnen, zu bearbeiten und vor dem
Beenden eine ‚prog2word.txt‘ abzuspeichern.

Was genau soll den passieren?

Grüße

CMБ

Hallo wtp

MFC und C++ habe ich schon geschnuppert, VB und VBA kenne ich
gar nicht. Und da das ne Studienarbeit für das laufende
Semester werden soll, will ich nicht erst eine neue Sprache
erlernen.

VBA ist die Makrosprache im Word. Diese ist sehr leicht
zu lernen und einfach anzuwenden.

Du solltest also in kurzer Zeit die ganze
Oberfläche in VBA machen können und Deine
Kommandozeilenprogramme aus der VBA-Ober-
fläche mit dem SHELL(…) -befehl
aufrufen können.

Datei-Ein/Ausgabe ist in VBA gar kein Thema,
das geht praktisch von selber :wink:
(z.B. http://www.bau.uni-rostock.de/Excel2000_Teil02.pdf)

Grüße

CMБ

Hallo Winni,

MFC und C++ habe ich schon geschnuppert, VB und VBA kenne ich
gar nicht. Und da das ne Studienarbeit für das laufende
Semester werden soll, will ich nicht erst eine neue Sprache
erlernen.

Um VBA kommst du nicht drum rum, weil du damit die Aufrufe in Word machen Musst.

VB und VBA sind eigentlich die selbe Sprache, ein weiterentwickeltes BASIC.
VB ist ein Compiler und VBA wird als Macrosprache von einem Interpreter abgearbeitet.
Die ganzen Functionen, von z.B. Word, sind eigentlich nicht Bestandteil von VB oder VBA sondern des Objekts WORD.
In VB musst musst du das, z.B. Word-Object, explizit öffnen, in VBA-für-Word (VBA-W) ist dieses schon automatisch geöffnet, wenn das Macro startet. Willst du aber aus VBA-W etwas in Excell aufrufen, musst du auch hier, glaich wie in VB, zuerst das Excell-Object öffnen.

MfG Peter(TOO)