Manifest-Problem
Von:Thomas Holste thomas.holste@holste-software.deHallo Zusammen,Hal
An:All :gelesen
erstellt am:26.05.2018 12:38:53 - #23766 in section Antworten     Antworten mit Zitat
Hallo Zusammen,

neuguerig durch die neuliche Veranstaltung habe ich wie von
Uwe Habermann beschrieben via BS eine Manifest-Dateu zu einem VFP-Programm
erstellt und dann eine File-Sektion für die CHILKAT-FTP-DLL (ActiveX)eingefügr. Die Daten habe ich wie beschrieben zusammengestellt:

1. Zuerst via Progid "Chilkat_9_5_0.Ftp2" die Class-ID gesucht, dann via
Class-ID das Threading-Modell gesucht. So soeht das alles aus:

Das Hanze dann in die Manofest-Datei eingefügt, die DLL deregistriert und ins Programm-Verzeichnis kopiert. Aber es geht nicht.




version="1.0.0.0"
type="win32"
name="Galileo"
processorArchitecture="x86"
/>
Visual FoxPro


type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
language="*"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
/>



progid="Chilkat_9_5_0.Ftp2"
clsid="{32BD32D3-66EA-4EE6-A684-20CE86F757C1}"
description="Chilkat FTP"/>





Kann mir da jemand weiter helfen?

Vielen Dank und viele Grüße

Thomas




Von:Thomas Holste thomas.holste@holste-software.deHallo Zusammen,Hal
An:Thomas Holste thomas.holste@holste-software.deHallo Zusammen,Hal
erstellt am:26.05.2018 12:43:31 - #23767 in section Antworten     Antworten mit Zitat
Kleiner Nachtrag:

Ich bitte die Tippfehler zu enrschuldigen, meine Sehkraft hat gerade die 5%
unterschritten.

Und: Ich hoffe, ich bin als Thomas Holste zu erkennen, obwohl das
Forum hartnäckig benauptet, ich sei Hans-Peter Grözinger.



Von:Burkhard Anglewitz anglewitz@anglewitz.de
An:Thomas Holste thomas.holste@holste-software.deHallo Zusammen,Hal
erstellt am:28.05.2018 17:45:58 - #23768 in section Antworten     Antworten mit Zitat
--from Newsreader at Montag, 28. Mai 2018; 17:45:58--

Hallo Thomas,

so einfach ist das auch nicht. Wenn du die DLL deregistrierst, kannst du in VFP nicht mehr weiter programmieren. Dazu m=C3=BCsstest Du die manifest Datei in die FoxPro.exe rein kompilieren.
Die Manifestdatei greift erst in deiner fertigen Anwendung, wenn sie beim Erstellen denselben Namen hat die deine kompilierte Anwendung und dabei im Projekt Ordner lag.
Zum Testen deiner Anwendung kannst du deine DLL dann die registrieren oder du gibst dem einzelnen Modulen der DLL in der Manifestdatei eine andere progid, z.B. â=80=9CChilkat_9_5_0.Ftp2.1"

Dann kannst du per Version(2) = 0 im Programm Code steuern, welches Objekt du erzeugen willst.

Zum Beispiel so:
IF VERSION(2) = 0
loftp = CreateObject('Chilkat_9_5_0.Ftp2.1') && .Ftp2.1 aus der Manifest kommt
ELSE
loftp = CreateObject('Chilkat_9_5_0.Ftp2') && .Ftp2 aus registrierter Klasse
ENDIF

Ich hoffe ein bisschen Licht ins Dunkel gebracht zu haben.

Beste Gr=C3=BC=C3=9Fe

Burkhard Anglewitz


"Thomas Holstethomas.holste@holste-software.deHallo Zusammen"; "Hal" schrieb im Newsbeitrag news:741366...
Hallo Zusammen,

neuguerig durch die neuliche Veranstaltung habe ich wie von
Uwe Habermann beschrieben via BS eine Manifest-Dateu zu einem VFP-Programm
erstellt und dann eine File-Sektion f=C3=BCr die CHILKAT-FTP-DLL (ActiveX)eingef=C3=BCgr. Die Daten habe ich wie beschrieben zusammengestellt:

1. Zuerst via Progid "Chilkat_9_5_0.Ftp2" die Class-ID gesucht, dann via
Class-ID das Threading-Modell gesucht. So soeht das alles aus:

Das Hanze dann in die Manofest-Datei eingef=C3=BCgt, die DLL deregistriert und ins Programm-Verzeichnis kopiert. Aber es geht nicht.





version="1.0.0.0"
type="win32"
name="Galileo"
processorArchitecture="x86"
/>
Visual FoxPro



type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
language="*"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
/>




progid="Chilkat_9_5_0.Ftp2"
clsid="{32BD32D3-66EA-4EE6-A684-20CE86F757C1}"
description="Chilkat FTP"/>





Kann mir da jemand weiter helfen20

Vielen Dank und viele Gr=C3=BC=C3=9Fe

Thomas





Von:Thomas Holste Thomas_Holste@Compuserve.com
An:Burkhard Anglewitz anglewitz@anglewitz.de
erstellt am:28.05.2018 20:04:38 - #23769 in section Antworten     Antworten mit Zitat
Hallo Burkhard,

danke für Deine Hinweise. In der Zwischenzeit hatte ich einen Artikel von Rick Strahl gelesen, der mich auf die von Dir erwähnten Punkte aufmerksam machte. Ich habe die Anwendung dann auch neu kompilert und anschliessend die DLL deregistriert und mit dem Kompilat, nicht der IDE getestet.
Aber leider auch ohne Erfolg. Die erweiterte Manifest-Datei wird zawr beim Kompilieren importiert )das kann ich mit VS prüfen), aber es geht trotzdem nicht.

Viele Grüße

Thomas




 

--from Newsreader at Montag, 28. Mai 2018; 17:45:58--

Hallo Thomas,

so einfach ist das auch nicht. Wenn du die DLL deregistrierst, kannst du in VFP nicht mehr weiter programmieren. Dazu m=C3=BCsstest Du die manifest Datei in die FoxPro.exe rein kompilieren.
Die Manifestdatei greift erst in deiner fertigen Anwendung, wenn sie beim Erstellen denselben Namen hat die deine kompilierte Anwendung und dabei im Projekt Ordner lag.
Zum Testen deiner Anwendung kannst du deine DLL dann die registrieren oder du gibst dem einzelnen Modulen der DLL in der Manifestdatei eine andere progid, z.B. â=80=9CChilkat_9_5_0.Ftp2.1"

Dann kannst du per Version(2) = 0 im Programm Code steuern, welches Objekt du erzeugen willst.

Zum Beispiel so:
IF VERSION(2) = 0
loftp = CreateObject('Chilkat_9_5_0.Ftp2.1') && .Ftp2.1 aus der Manifest kommt
ELSE
loftp = CreateObject('Chilkat_9_5_0.Ftp2') && .Ftp2 aus registrierter Klasse
ENDIF

Ich hoffe ein bisschen Licht ins Dunkel gebracht zu haben.

Beste Gr=C3=BC=C3=9Fe

Burkhard Anglewitz


"Thomas Holstethomas.holste@holste-software.deHallo Zusammen"; "Hal" schrieb im Newsbeitrag news:741366...
Hallo Zusammen,

neuguerig durch die neuliche Veranstaltung habe ich wie von
Uwe Habermann beschrieben via BS eine Manifest-Dateu zu einem VFP-Programm
erstellt und dann eine File-Sektion f=C3=BCr die CHILKAT-FTP-DLL (ActiveX)eingef=C3=BCgr. Die Daten habe ich wie beschrieben zusammengestellt:

1. Zuerst via Progid "Chilkat_9_5_0.Ftp2" die Class-ID gesucht, dann via
Class-ID das Threading-Modell gesucht. So soeht das alles aus:

Das Hanze dann in die Manofest-Datei eingef=C3=BCgt, die DLL deregistriert und ins Programm-Verzeichnis kopiert. Aber es geht nicht.





version="1.0.0.0"
type="win32"
name="Galileo"
processorArchitecture="x86"
/>
Visual FoxPro



type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
language="*"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
/>




progid="Chilkat_9_5_0.Ftp2"
clsid="{32BD32D3-66EA-4EE6-A684-20CE86F757C1}"
description="Chilkat FTP"/>





Kann mir da jemand weiter helfen20

Vielen Dank und viele Gr=C3=BC=C3=9Fe

Thomas










Von:Burkhard Anglewitz anglewitz@anglewitz.de
An:Thomas Holste Thomas_Holste@Compuserve.com :gelesen
erstellt am:29.05.2018 00:37:45 - #23770 in section Antworten     Antworten mit Zitat
--from Newsreader at Dienstag, 29. Mai 2018; 00:37:45--

Was passiert denn genau beim Zugriff?

Gruß
Burkhard


"Thomas Holste" schrieb im Newsbeitrag news:741369...
Hallo Burkhard,

danke für Deine Hinweise. In der Zwischenzeit hatte ich einen Artikel von Rick Strahl gelesen, der mich auf die von Dir erwähnten Punkte aufmerksam machte. Ich habe die Anwendung dann auch neu kompilert und anschliessend die DLL deregistriert und mit dem Kompilat, nicht der IDE getestet.
Aber leider auch ohne Erfolg. Die erweiterte Manifest-Datei wird zawr beim Kompilieren importiert )das kann ich mit VS prüfen), aber es geht trotzdem nicht.

Viele Grüße

Thomas





--------------------------------------------------------------------------

--from Newsreader at Montag, 28. Mai 2018; 17:45:58--

Hallo Thomas,

so einfach ist das auch nicht. Wenn du die DLL deregistrierst, kannst du in VFP nicht mehr weiter programmieren. Dazu m=C3=BCsstest Du die manifest Datei in die FoxPro.exe rein kompilieren.
Die Manifestdatei greift erst in deiner fertigen Anwendung, wenn sie beim Erstellen denselben Namen hat die deine kompilierte Anwendung und dabei im Projekt Ordner lag.
Zum Testen deiner Anwendung kannst du deine DLL dann die registrieren oder du gibst dem einzelnen Modulen der DLL in der Manifestdatei eine andere progid, z.B. â=80=9CChilkat_9_5_0.Ftp2.1"

Dann kannst du per Version(2) = 0 im Programm Code steuern, welches Objekt du erzeugen willst.

Zum Beispiel so:
IF VERSION(2) = 0
loftp = CreateObject('Chilkat_9_5_0.Ftp2.1') && .Ftp2.1 aus der Manifest kommt
ELSE
loftp = CreateObject('Chilkat_9_5_0.Ftp2') && .Ftp2 aus registrierter Klasse
ENDIF

Ich hoffe ein bisschen Licht ins Dunkel gebracht zu haben.

Beste Gr=C3=BC=C3=9Fe

Burkhard Anglewitz


"Thomas Holstethomas.holste@holste-software.deHallo Zusammen"; "Hal" schrieb im Newsbeitrag news:741366...
Hallo Zusammen,

neuguerig durch die neuliche Veranstaltung habe ich wie von
Uwe Habermann beschrieben via BS eine Manifest-Dateu zu einem VFP-Programm
erstellt und dann eine File-Sektion f=C3=BCr die CHILKAT-FTP-DLL (ActiveX)eingef=C3=BCgr. Die Daten habe ich wie beschrieben zusammengestellt:

1. Zuerst via Progid "Chilkat_9_5_0.Ftp2" die Class-ID gesucht, dann via
Class-ID das Threading-Modell gesucht. So soeht das alles aus:

Das Hanze dann in die Manofest-Datei eingef=C3=BCgt, die DLL deregistriert und ins Programm-Verzeichnis kopiert. Aber es geht nicht.





version="1.0.0.0"
type="win32"
name="Galileo"
processorArchitecture="x86"
/>
Visual FoxPro



type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
language="*"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
/>




progid="Chilkat_9_5_0.Ftp2"
clsid="{32BD32D3-66EA-4EE6-A684-20CE86F757C1}"
description="Chilkat FTP"/>





Kann mir da jemand weiter helfen20

Vielen Dank und viele Gr=C3=BC=C3=9Fe

Thomas






--------------------------------------------------------------------------






Von:Thomas Holste Thomas_Holste@Compuserve.com
An:Burkhard Anglewitz anglewitz@anglewitz.de
erstellt am:29.05.2018 09:31:37 - #23771 in section Antworten     Antworten mit Zitat
Hallo Burkhard,

es kommt der Fehler 1733 "Class definition .... not found

Viele Grüße

Thomas

Von:Burkhard Anglewitz anglewitz@anglewitz.de
An:Thomas Holste Thomas_Holste@Compuserve.com :gelesen
erstellt am:29.05.2018 18:37:06 - #23772 in section Antworten     Antworten mit Zitat
--from Newsreader at Dienstag, 29. Mai 2018; 18:37:06--

Hi,

er findet also die Chilkat-DLL, aber die Klasse nicht? Dann ist die Klasse wohl nicht richtig in der Manifest.

Was passiert, wenn du die DLL unbenennst? Dann sollte erda Fehlen der DLL anmeckern, falls die Definition der Klasse richtig ist.

Beste Grüße
Burkhard


"Thomas Holste" schrieb im Newsbeitrag news:741372...
Hallo Burkhard,

es kommt der Fehler 1733 "Class definition .... not found

Viele Grüße

Thomas


Von:Thomas Holste Thomas_Holste@Compuserve.com
An:Burkhard Anglewitz anglewitz@anglewitz.de
erstellt am:30.05.2018 11:05:41 - #23773 in section Antworten     Antworten mit Zitat
Hallo Burkhard,

es scheit jetzt zu gehen, ich werde gleich mal auf einen zweiten PC testen.

Ich habe gestern einfach mal alles liefen gelassen, habe alles gelöscht,
eine neue "leere" Manifest-Datei erstellt und dann die file-section mot einer Manifest-Datei, die mit Chilkat geschickt hat, gefüllt. Ich hatte vorher zwar auch die korrekte Classid, nun aber auch die Ids aller anderen in dem Control enthaltenen Klassen in die Datei engefügt.

Vielen Dank noch einmal für all die Anregungen und Tips und viele Grüße

Thomas




Von:Hans-Peter Grözinger hanspetergr@gmx.de
An:Thomas Holste Thomas_Holste@Compuserve.com :gelesen
erstellt am:30.05.2018 12:38:25 - #23774 in section Antworten     Antworten mit Zitat
Hallo Zusammen !

Auch ich war bei Uwes Vortrag dabei und konnte jetzt alle meine ActiveX-Controls in der Manifest-Datei eintragen sodaß diese nicht mehr registriert werden müssen.
Dazu möchte ich euch noch zwei Infos geben:
- Wenn man vor den Namen des OCX einen Verzeichnisnamen setzt kann man die OCXe auch in ein Unterverzeichnis verschieben.
file name="Class\ctTray.ocx"
- Um nicht in der Registry nach den Infos suchen zu müssen kann man auch das ActiveX-Tool von NirSofer einsetzen:
http://www.nirsoft.net/utils/axhelper.html
Da findet man die CLSID, die ProgID, die Beschreibung und das Einfädelungsmodell (Apartment, Both, ...)

--
Hans-Peter
Von:Thomas Holste Thomas_Holste@Compuserve.com
An:Hans-Peter Grözinger hanspetergr@gmx.de :gelesen
erstellt am:30.05.2018 13:20:44 - #23775 in section Antworten     Antworten mit Zitat
Hallo Hans-Peter,

danke für die Infos.

Viele Grüße

Thomas