Alle Beiträge von Narf!
-
CImage::Save()
Hallo an alle Zeichner! CImage img; CImage img.Load("Bild.jpg"); CDC *pDC=CDC::FromHandle(img.GetDC()); //keine weitere Bearbeitung oder pDC->DrawText() img.Save("NeuBild.jpg"); img.ReleaseDC(); Beim Laden hat das Bild eine Auflösung von 420x420. Beim Speichern aber 1748x1748. Die Bilder haben beide 96 DPI. Warum wird die Auflösung geändert ohne dass ich was dazu tun muss bzw. was kann ich dagegen tun? VC++ 2003, Konsole-Programm
-
IXSLProcessor::transform(...)
Hallo an Alle! Ich bin dabei eine XML-Datei mit einer XSL-Datei in mehrere XML-Dateien aufzuteilen. Das Laden der Dateien (XML, XSL) haut hin, aber der Befehl <xsl:result-document... kommt aus XSLT 2.0. Alle anderen Testskripte waren Version 1.0 und haben funktioniert. Und hier das Problem: Ich habe #include "msxml2.h" eingebunden. Ich nehme mal an, das hier die 2 nichts mit der Version von XSLT zu tun hat. Woher kann ich die Version 2.0 bekommen? Oder kann man das auch mit Version 1.0 hinbekommen? VC++ 2003, MFC.
-
IXMLDOMDocument2
Hat sich erledigt. #import "msxml4.dll" using namespace MSXML2; Ist weggefallen.
-
IXMLDOMDocument2
Hallo an alle! Ich bin dabei ein Programm zur Wandlung von XML mit XSL zu schreiben. Dabei habe ich mir das Beispiel aus der MSDN zum Testen kopiert. #include "msxml2.h" #import "msxml4.dll" using namespace MSXML2; IXMLDOMDocument2 *pStyleSheet=NULL; IXMLDOMDocument2 *pDOMObject=NULL; IXMLDOMDocument2 *pIXMLDOMDocument=NULL; IXSLTemplate *pIXSLTemplate=NULL; IXSLProcessor *pIXSLProcessor=NULL; ... Beim Erstellen erhalte ich für alle o.g. Elemente folgenden Fehler: Woran kann es liegen bzw. was kann ich tun? (Visual C++ 2003, MFC, dialogfeldbasierend)
-
Schließ-Kreuz deaktivieren
Vielen Dank. Falls der Link mal nicht zu erreichen ist: OnInitDialog: CMenu* mnu = this->GetSystemMenu(FALSE); mnu->EnableMenuItem( SC_CLOSE, MF_BYCOMMAND|MF_GRAYED);
-
Schließ-Kreuz deaktivieren
Oh-oh, war wohl wieder das Fettnäpfchen. :old Ich meine das [X] oben rechts, neben [Min] und [Max]. Rot ist der XP-Style. Ich mache sowas, jedenfalls habe ich das vor. Bei MessageBoxen geht das ja auch. Da muss man [OK] o.ä. drücken und nicht [X]. Das Programm-Icon ist z.Bsp. siehe oben links das IExplorer-Icon. Wenn man die Dialogeigenschaft Systemmenü=FALSE wählt, dann wird zwar der Dialogtitel angezeigt aber das Icon nicht mehr. So, ich hoffe ich bin aus dem Napf raus.
-
Schließ-Kreuz deaktivieren
Hallo an alle, wie kann ich in meinem Dialog das Schließ-Kreuz (oben rechts, das rote ) deaktivieren? Das Programm soll nur über einen Button beendet werden können. Ich habe zwar die Möglichkeit den Dialog ohne das SK anzeigen zu lassen, aber das sieht nicht gut aus, da auch kein Programm-Icon angezeigt wird und wer macht denn sowas.
-
CreateProcess aus Thread
Genau das habe ich auch gedacht und leite die Ausgabe in eine Pipe um. Aber dort gibt es das Problem, dass der Prozess nach dem Fehler bei ReadFile() stoppt und auf die Rückkehr der Funktion wartet. Wie hoch ist der Timeout von ReadFile? So könnte man nachsehen, was als letztes in der Ausgabe steht und den Prozess mit einem entsprechenden Exitcode terminieren. ("I'll be back!" :cool: )
-
CreateProcess aus Thread
Mit Thread meinte ich einen weiteren Thread. Das externe Programm bringt den Fehler (R6025: pure virtual function call). Kann ich irgendwie den Zustand des externen Prozesses/Threads abfragen?
-
CreateProcess aus Thread
Hallo an alle! Ist es ein Problem einen Prozess aus einem Thread heraus zu starten? Bevor und nachdem der Prozess gestartet wurde, sind noch andere Aufgaben notwendig, die einen Thread erfordern, um die Dialoganzeige aktuell zu halten. Insgesammt werden in dem Thread bis zu fünf Prozesse gestartet, die einen Konsolen-Prozess anschieben. Es ist nur notwendig, das Ende der Prozesse abzuwarten. Ab und zu tritt der Fehler auf, dass das Konsolen-Programm beendet ist, aber das DOS-Fenster nicht geschlossen wird.
-
FTP-Verbindung
Also: Hier muss es in unserem Fall mit einem Linux-Proxy-Server heißen: ftp=sess.GetFtpConnection("[Linux-Server]", "[FTP-Nutzername]@[FTP-Server]", "[PWD]", 21, TRUE); Und mit ftp->GetFile(RemoteFile, DestinationFile) wird auch eine Datei kopiert.
-
FTP-Verbindung
Hallo an alle, folgendes Beispiel kommt aus der MSDN: CInternetSession sess(_T("Test/1.0")); CFtpConnection *ftp=NULL; ftp=sess.GetFtpConnection(_T("ftp.microsoft.com")); if(ftp) ftp->Close(); Folgende Fehlermeldung kommt vom Programm: Wenn ich die Adresse in den IE eingebe, klappt es. Warum nicht im Programm? Am Ende soll eine FTP-Verbindung in ein Verzeichnis, mit Benutzername und Kennwort hergestellt werden, um dort liegende Dateien herunterzuladen. Die Internetverbindung wird über einen Proxy-Server mit Port hergestellt.
-
AfxBeginThread(Func, this, 0, 0, 0, 0)
DAS GANZE HALT! Ich habe das Projekt neu erstellt und nun geht es.
-
AfxBeginThread(Func, this, 0, 0, 0, 0)
Ich habe keine Arrays oder Zeiger (außer zum Dialog) in meiner Thread-Funktion. Den Dialog kann ich nicht mit EndModalLoop() schließen, da es sich um den Hauptdialog handelt.
-
AfxBeginThread(Func, this, 0, 0, 0, 0)
Hallo an Alle. Um an mehrere meiner Dialgfeld-Kontroll-Variablen (CListCtrl) in einem Thread heranzukommen, habe ich den this-Zeiger meines Dialoges übergeben (s.o.) und in der Thread-Funktion denn Zeiger interpretiert: static UINT Func(LPVOID lParam) { C[Programm]Dlg* hb=reinterpret_cast<C[Programm]Dlg*> (lParam); } Über hb-> komme ich an alle Variablen ran, der Thread läuft (füllt ein ListBox-Element) aber wenn ich das Programm beende kommt die Fehlermeldung: dlg ist die Variable aus der [App].cpp, wo das Programm initialisiert wird und das OnClose() oder OnOK() verarbeitet werden. Wenn das so nicht geht, wie kann ich einem Thread mehrere Variablen übergeben?
-
Zugriffsteuerung mit Semaphore
Zu 3. habe ich folgendes: ReleaseSemaphore(semProzess, 1, NULL); Die 1 bedeutet, dass der Zähler um 1 runtergezählt wird.
-
Zugriffsteuerung mit Semaphore
Hallo an alle, ich wage mich an Semaphoren ran. Ich möchte den Zugriff auf einen externen Prozess auf drei begrenzen. Ist nachfolgendes soweit richtig? 1. Initialisierung: HANDLE semProzess=CreateSemaphore(NULL, 0, 3, "ProzessName"); 2. Zum besitzen oder bei erreichen von 3 warten: WaitForSingleObject(semProzess, INFINITE); 3. Freigeben, hier weiss ich nicht so recht: ReleaseSemaphore(semProzess, ?, ?); 4. Schliessen: CloseHandle(semProzess); IDE:WinXP Pro SP2, VS 2003.NET, C++, MFC, Dialog.
-
Ausgabe einer Console abfangen
Habe es nachgebaut, aber die Console hat keine Ausgaben mehr. Ich möchte eigentlich die Ausgaben nur mitlesen, um auf evtl. Meldungen zu reagieren. Ansonsten soll die Ausgabe aber noch zu sehen sein. Wie kann ich das anstellen?
-
IMAPI - CD brennen mit XP
Gibt es irgend eine Möglichkeit aus den Ergebnissen der Funktionen von IDiscRecorder auf den Laufwerksbuchtaben zu schliessen? Z.Bsp. Nero gibt ja auch zu den Recordern den LWB aus.
-
IMAPI - CD brennen mit XP
IDiscRecorder::GetPath(BSTR *Path) gibt den Pfad so aus: \device\Cdrom1. Wie bekomme ich den dazugehörigen Laufwerksbuchstaben raus?
-
IMAPI - CD brennen mit XP
Hallo an alle! Mein Problem (Projekt) ist: Ich habe fünf Brenner, jeder Brenner soll eine CD brennen. Ich wollte das ohne Nero oder andere Brennsoftware (mit CreateProcess) machen, also habe ich gesucht und die IMAPI (Image Master API) von XP gefunden. Jetzt habe ich einige Fragen: 1. Kann ich damit zur gleichen Zeit mehrere Brenner belegen? 2. Wie kann ich der API sagen, welchen Brenner (wenn möglich als Pfad ?:\) sie nehmen soll und wo die Daten zum Brennen liegen? 3. Kann ich die API in Threads verwenden? Ich habe mir das Beispiel von MS angesehen, steige da aber nicht richtig durch, weil ich keine Reihenfolge erkennen konnte.
-
CWinThread - Threads hängen sich auf
Das werde ich mir mal ansehen.
-
CWinThread - Threads hängen sich auf
Natürlich machen die noch etwas anderes, aber ich dachte mir, das hilft vielleicht mehr. Alle Threads müssen auch auf eine gemeinsame Komponente zugreifen, wo nur ein einziger Zugriff erhalten darf. Alle anderen Threads warten auf die Freigabe mit einer while-Schleife.
-
CWinThread - Threads hängen sich auf
Hallo an alle Thread-Spezialisten! Ich habe ein Riesenproblem: Meine Dialog-Anwendung startet fünf Arbeitsthreads, diese starten je einen externen Prozess. Alles wird mit dem Priority-Level Normal gestartet. AfxBeginThread([Thread-Funktion], &m_cListCtr1, THREAD_PRIORITY_NORMAL, 2048, 0, 0); CreateProcess(NULL, [exe mit Argumenten], NULL, NULL, TRUE, CREATE_NEW_CONSOLE|NORMAL_PRIORITY_CLASS, NULL, NULL, &si1, &pi1); //si1 Start-Information; pi1 Prozess-Information Allerdings kommt es zu erheblichem Fehlverhalten: Entweder der Rechner stürzt ab oder die Threads bleiben hängen, sodass ich nur mit der Reset-Taste neu starten kann. Ich bin kein großer Thread-Spezialist. Die Threads reagieren auf globale BOOL-Variablen, auf die jeder Thread mit einer while-Schleife und Sleep() wartet, bis diese den Wert false haben. Kann mir jemand einen Tip geben, wie das ganze sicher läuft?
-
Performance-Probleme mit IExplorer
Ja, im IE direkt geht es auch nicht, da die Links in eine SMIL-Datei und einem Fragment zeigen. Mit der Funktion BeforeNavigate(LPDISPATCH pDisp, VARIANT* URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers, BOOL* Cancel) greife ich die URL ab und setze Cancel auf false, sodass keine wirkliche Navigation erfolgt. Ich habe in dieser Funktion auch schon Haltepunkte gesetzt, aber ich komme beim Zugriff vom Brenner nicht hinein.