Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: Compiler- und IDE-Forum ::  VC2010 DLL debuggen  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
hermieweber
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.01.2012
Beiträge: 13
Beitrag hermieweber Mitglied 10:45:00 02.04.2012   Titel:   VC2010 DLL debuggen            Zitieren

Hallo!

Ich möchte gerne das Beispiel SampleTTSEngine.sln aus dem Windows SDK (C:\Programs\Microsoft SDKs\Windows\v7.0\Samples\winui\speech\engines\samplettsengine)
auf meine Anwendung "übertragen".

Meine Anwendung ist bisher eine .exe, und ich möchte sie jetzt mit dem selben Interface wie wie SampleTtsEngine ausstatten.

Ich wollte gerne einfach mal das bestehende Beispiel debuggen, um zu schauen, was da überhaupt passiert.

Ich habe die Kompileroptionen auf "Debuggen" gestellt, aber wenn ich dann das Debuggen starte, sagt er mir "Das Programm "m:\samplettsengine\Debug\SampleTtsEngine.dll" kann nicht gestartet werden werden.

Wie ihr sehen könnt, habe ich das Projekt in einen anderen Ordner kopiert, weil ich dachte, es liegt vielleicht daran, dass ich im "Programme"-Ordner zu wenig Rechte habe.

Im Moment bin ich grade nicht sicher, warum er die DLL nicht debuggen möchte.

Über Hilfe würde ich mich sehr freuen.

Vielen Dank!
Jochen Kalmbach
Moderator

Benutzerprofil
Anmeldungsdatum: 11.11.2005
Beiträge: 12072
Beitrag Jochen Kalmbach Moderator 10:55:01 02.04.2012   Titel:              Zitieren

Ja, Du brauchst irgendeine EXE, welche Deine DLL verwendet. Die kannst Du dann ein den Projekteinstellungen unter "Debuggen" eintragen. Diese Anwendung wird dann gestartet. Jetzt musst Du nur noch sicherstellen, dass diese Anwendung auch Deine DLL lädt! Das hängt natürlich von der jeweiligen Anwendung ab...

_________________
Greetings
Jochen
(Microsoft MVP VC++) My blog about Win32 and .NET: http://blog.kalmbach-software.de/ (deutsch)
hermieweber
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.01.2012
Beiträge: 13
Beitrag hermieweber Mitglied 13:52:58 02.04.2012   Titel:              Zitieren

Vielen Dank. Ich dachte grade, ich steh im Wald, als es dann auf Anhieb auch noch funktioniert hat. Ich konnte es kaum glauben.

Darf ich noch etwas fragen, bitte?

Ich habe im Moment eine Feld-Wald und Wiesen-DLL.
Die möchte/muss ich jetzt in eine COM-DLL umwandeln.

Ich habe das noch nie gemacht. Reicht es, wenn ich die COM-Methode/das COM-Interface implementiere, oder muss ich auch noch in den Projekteigenschaften irgendetwas ändern?

Ich habe jetzt einfach mal probiert, und er motzt jetzt z. B. in der Zeile

CComModule _Module;

Fehler 1 error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner '_Module' SampleTtsEngine.cpp 19 1 voice

Ich weiß nicht, was er da von mir will.

Vielen Dank.
Jochen Kalmbach
Moderator

Benutzerprofil
Anmeldungsdatum: 11.11.2005
Beiträge: 12072
Beitrag Jochen Kalmbach Moderator 14:23:55 02.04.2012   Titel:              Zitieren

Hast Du schon eine MFC-DLL?
Wenn nicht, dann wird das kompliziert...

_________________
Greetings
Jochen
(Microsoft MVP VC++) My blog about Win32 and .NET: http://blog.kalmbach-software.de/ (deutsch)
hermieweber
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.01.2012
Beiträge: 13
Beitrag hermieweber Mitglied 16:57:08 02.04.2012   Titel:              Zitieren

Also ich denke mal, ich schaffe es nicht, zu vermitteln, dass ich ATL möchte (um mich mal so newbie-mäßig auszudrücken), aber ich habe in stdafx.h doch diese Zeilen hier drin:

#include <atlbase.h>
//You may derive a class from CComModule and use it if you want to override
//something, but do not change the name of _Module
extern CComModule _Module;
#include <atlcom.h>

Muss ich vielleicht im Projekteigenschaftenfenster oder so noch etwas umstellen?

Danke für die Hilfe.
hermieweber
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.01.2012
Beiträge: 13
Beitrag hermieweber Mitglied 17:40:44 02.04.2012   Titel:              Zitieren

Ich weiß nicht... Wo sehe ich denn, ob ich eine MFC-DLL habe?
hermieweber
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.01.2012
Beiträge: 13
Beitrag hermieweber Mitglied 17:43:13 02.04.2012   Titel:              Zitieren

Ich habe auf dem einem Monitor das Windows-Beispiel geöffnet, und auf dem anderen Monitor meine DLL.

Ich habe meines Wissens nach mein Projekt so angeglichen, dass es wie das Windows-Beispiel aussieht inklusive includes, etc.

Wenn das gemacht ist, und er motzt trotzdem so rum, was würdet ihr denn dann tippen, was ich noch falsch gemacht habe?
Jochen Kalmbach
Moderator

Benutzerprofil
Anmeldungsdatum: 11.11.2005
Beiträge: 12072
Beitrag Jochen Kalmbach Moderator 19:33:01 02.04.2012   Titel:              Zitieren

Wenn Du ATL hast, dann sollte es auch gehen...

Am einfachsten ist es, wenn Du ein Projeklt neu anlegst, so wie Du es mit Deinem gemacht hast und dann eines mit aktiviertem COM-Server; dann vergleichst Du die beiden und siehst, was Du in Deinem bestehenden Projekt noch eintragen musst...

_________________
Greetings
Jochen
(Microsoft MVP VC++) My blog about Win32 and .NET: http://blog.kalmbach-software.de/ (deutsch)
hermieweber
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.01.2012
Beiträge: 13
Beitrag hermieweber Mitglied 20:05:17 02.04.2012   Titel:              Zitieren

Okay, ich hatte einen Teil des Codes vergessen übertragen...

Ich habe bitte noch eine Frage:

In dem Microsoft-Beispielprojekt gibt es eine .rc-Datei.
In dieser .rc-Datei steht:

#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
1 TYPELIB "SampleTtsEngine.tlb"
#include "version.rc2"

Jetzt sagt er, dass die Datei SampleTtsEngine.tlb fehlt.
Ich könnte sie aus dem anderen Projekt rüberkopieren, denke ich, aber ich wüsste gerne, wie man selbst so eine .tlb-Datei erstellt.

Wenn da jemand die Antwort weiß, würde ich mich sehr freuen.

Vielen Dank!

Hermie
Martin Richter
Moderator

Benutzerprofil
Anmeldungsdatum: 18.04.2006
Beiträge: 14172
Beitrag Martin Richter Moderator 22:30:55 02.04.2012   Titel:              Zitieren

Eine TLB Datei wird aus einer IDL Datei erzeugt. Also diese IDL Datei wird kompiliert und zur TLB. Diese Datei wird dann als Ressource eingebunden.

Und nein. Du kannst keine TLB aus einem anderen Projekt nehemn. Die TLB Datei muss genau zu Deinen Interfaces passen, die Du bauen möchtest.

_________________
Martin Richter (MVP für C++) WWJD http://blog.m-ri.de
"A well-written program is its own heaven; a poorly written program is its own hell!" The Tao of Programming
c++.de :: Compiler- und IDE-Forum ::  VC2010 DLL debuggen  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.