Guten Morgen,
ich möchte gerne an einem bestehenden C++ Projekt für eine (Windows-)DLL weiterarbeiten, welches (nicht von mir) in Visual C++ realisiert wurde.
Da ich aber zugegebenermaßen die NetBeans IDE komfortabler als VC++ finde, würde ich das Projekt gerne konvertieren/transferieren. Leider hat es nicht ausgereicht die gesamten .c und .h Dateien in NetBeans in ein Projekt zu importieren – das habe ich mir wohl zu einfach vorgestellt.
Weiß jemand, wie ich da sinnvoll vorgehen sollte?
MfG
der Ben
Kannst du deinen Code auf ein Minimalbeispiel reduzieren, bei dem der Fehler auftritt? Ein Minimalbeispiel, dass fuer sich alleine kompilierbar ist, ohne weitere Abhaengigkeiten.
Der Compiler ist sicher nicht fehlerfrei, aber die Wahrscheinlichkeit, dass du auf einen Fehler im Optimierer gestossen bist, halte ich doch eher fuer gering. Wahrscheinlich benutzt du in deinem Code nicht initialisierte Variablen oder hast andere Fluechtigkeitsfehler gemacht, die erst bei optimiertem Code zum Vorschein kommen.
Schau Dir die Fenster Auto / Locals und Watch an!
Weiterhin kannst Du jederzeit einfach den Cursor übereine Variable bewegen, während des Debuggens. Quickwatch per Shift+F9 und aus dem Kontextmenü gibt es auch noch...
Hallo Forum,
ich möchte eine Lib innerhalb eines VS6 Projektes nutzen. Ich erhalte diese beiden Fehler:
error LNK2001: unresolved external symbol __ftol2
error LNK2001: unresolved external symbol __aulldvrm
Nach einer Suche im Inet bin ich dann auf diese Lösung zu __ftol2 gestoßen:
extern "C" long _ftol( double );
extern "C" long _ftol2( double dblSource ) {
return _ftol(dblSource);
// http://www.manusoft.com/Resources/ARXTips/Main.stm
}
Gibt es vielleicht eine Möglichkeit die Int Division von ulldvrm() von einer anderen Funktion ausführen zu lassen? Vermutlich hat ulldvrm() eine ähnliche Funktion wie diese Implementierung:
http://www.jbox.dk/sanos/source/lib/ulldvrm.asm.html
Kennt sich da jemand aus, bzw in welchem Forum könnte ich eine solche Frage stellen?
Vielen Dank
Herr Paul
PS: Meistens benutze ich das VS2005, in diesem einen Fall muß ich aber das VS6 benutzen.
Der Solution Explorer öffnet man Ctrl+Alt+L
Unter Tools -> Options -> Projects and Solution findest Du "Track item in Solutiuon Explorer"
Dadurch wird immer die aktuelle Datei im Solution Explorer selektiert. Ich verwende diese Einstellung immer.
Zusätzlich gint es den Befehl View.TrackActivityinSolutionExplorer, dem Du einen Hotkey zuordnen kannst, wenn Du die obige Einstellung nicht benutzt.
vielen dank.
problem gelöst, soweit ich das grad überblicke.
der geheimnisvolle prozess war aber nicht der explorer sondern der teatimer von spybot xD
greets
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
Einleitung
Jeder, der einmal an einem großen Projekt gearbeitet hat, kennt das:
Die Kompilierzeit steigt und steigt. Und das liegt nicht zuletzt an der mitsteigenden Anzahl der Headerdateien die eingebunden werden müssen. Und viele dieser Dateien wiederholen sich auch, da sie für jede .c/.cpp Datei extra benötigt werden.
Diese Zeit kann man unter VC++ (und auch anderen Compilern) drastisch senken. Mit vorkompilierten Headern.
Setup
Erstmal brauchen wir 2 Dateien: stdafx.h und stdafx.cpp. Diese werden zwar standardmäßig erstellt, viele verwenden aber oft leere Projekte. Diese Dateien können btw heissen wie Ihr wollt, der MSVC verwendet diese Namen nur eben als Standard.
Sollten sie nicht im Projekt bestehen, erstellt sie und fügt sie hinzu.
Die Einstellungen
Macht nun folgendes:
Eigenschaften des Projekts -> C/C++ -> Vorkompilierte Header.
Dort wählt Ihr in der oberen Spalte "Vorkompilierte Header verwenden".
In der nächsten Spalte schreibt Ihr rein: stdafx.h
Dann auf ok klicken.
Jetzt wählt Ihr die Datei stdafx.cpp. Auch dort
Eigenschaften -> C/C++ -> Vorkompilierte Header
Dort ändert Ihr nun die erste Spalte auf "Vorkompilierte Header erstellen".
Sonst lasst Ihr alles gleich.
Inhalt der Dateien
stdafx.h
Hier schreibt ihr alle Header rein, die Ihr verwendet. Allerdings empfehle ich, nur konstante Header zu verwenden, also eben jene aus der STL oder anderen API. Ansonsten wird das Projekt zu oft neu kompiliert, was den SpeedBonus wieder zunichte macht. Den include-guard natürlich nicht vergessen.
stdafx.cpp
In diese Datei schreibt Ihr nur
#include "stdafx.h"
rein. Sonst nichts.
In die restlichen .cpp Dateien eures Projekts muss jetzt als erstes include die stdafx.h rein, damit das richtig funktioniert. Das kann bei einem größeren Projekt etwas Arbeit werden, aber es lohnt sich.
Fazit
Wie man sehen kann, ist das ziemlich einfach. Aber es ist gleichzeitig auch ziemlich mächtig. So konnte ich die BuildZeit bei meinem aktuellen Projekt mit 13.000 Zeilen Code (ohne Kommentare) und knapp 105 .cpp Dateien von 1 Minute 20 auf 10 Sekunden drücken, wenn der vork. Header gebaut ist.
Ich hab das hier mal zusammengefasst, in der Hoffnung, dass es jemand was nutzt. Bei Fragen/Kritik immer los ;).
rya.
Guten Tag,
ich programmiere c++ mit mvc++ 2008 Express Beta. Gerade wollte ich eine neue Header-Datei meinem Windows-Forms Projekt anfügen, und mir fiel etwas auf, was ich bisher übersehen habe. Ein Dateityp, der sich "component class" nennt. Weiß jemand, was sich dahinter verbirgt???
Danke schon im Vorraus!!
mfg
Mr X