Projekt (exe-file) lauffähig weitergeben? Was ist dafür nötig?
-
achso, sorry, wusste ich nicht

Hab ich mal gemacht, jetzt läuft das programm aber nicht mehr, sondern stürzt ab...

Gruß
-
das is komisch, hatte ich aber auchs chomma, dass release nich lief. Dann is irgendwo ein fehler im programm. Versuch in release den Fehler mit Msgboxes / asserts/ sonstewat einzugrenzen und dann mitm debugger alles zu berprüfen (in der debug version natürlich dann)
-
Der erzeugte Code zwischen Debug und Releas unterscheidet sich an bestimmten Stellen. Z.B. werden Pointer im Debug autom mit null initialisiert. Im Release wird dies nicht gemacht. Wenn du z.B. einen Pointer auf null abfragst (um z.B. zu entscheiden, ob er gültig ist) hast du im Release eine ganz anderes Verhalten. Deshalb z.B. Pointer immer selber mit null initialisieren, dann hast du auch im Release keine Laufzeitprobleme... z.B. was diese Gegebenheit angeht.
void *p; //... if(p == NULL) // im Debug true, im Relase false !!!!!! // deshalb immer gleich: void *p = NULL; // dann ist die if-Abfrage immer gleichEs gibt sicherlich noch andere Debug-Spezialitäten, aber meistens ist das hier der Stolperstein.
-
Und wenn die release läuft:
Runtime Library statisch linken
Vertexwahns Libraries auch, wenn nötig
die "daten.csv" mitliefern und ins richtige Verzeichniss kopieren
-
Naja, die Laufzeitbibliothek müsste doch eigentlich auf allen Windowsrechnern vorhanden sein, oder?
-
Nein, z.B. die msvcr71.dll muß explizit mitgegeben werden (oder eben statisch gelinkt werden), da nicht jeder eine IDE installiert hat -)
-
Z.B. werden Pointer im Debug autom mit null initialisiert.
Das hoffe ich nich, das das jemals nen compiler macht ^^
IMHO werden Pointer mit nem speziellen undef wert initialisiert, bei VS 6.0 z.b. 0xcdcdcdcd
Irgendwas im debug auf 0 zu initialisieren und im relase nich, halt ich fuer auessert gefaehrlich ^^
ausser den debug symbolen allociert der compiler im debug modus noch def speichererbereiche vor und nach dem eigentlich allokierten speicher und schreibt da muster rein ... so das er ueberschreibungen des allokierten speicher erkennen kann ...
Optimierungen werden abgeschalten ...
Also wenn man kranke sachen macht so mit templates return wert geschichten und referenzen auf geloeschte objecte, kann sich das verhalten von debug und release scho extrem unnnerscheiden ^^
Ciao ...
-
also irgendwelche kranken sachen dürften in meinem quellcode eigentlich nicht sein
Fortgeschrittenes Anfänger C++ würde ich sagen 
1310-Logik schrieb:
Runtime Library statisch linken
Vertexwahns Libraries auch, wenn nötigTh schrieb:
Nein, z.B. die msvcr71.dll muß explizit mitgegeben werden (oder eben statisch gelinkt werden), da nicht jeder eine IDE installiert hat -)
wie verlinkt man denn statisch? bzw. wie verlinkt man überhaupt? include?
da der quellcode relativ lang ist, wird es leider schwierig in allen situationen testausgaben zu erzeugen.......... pointer verwende ich zwar, aber nur zur übergabe by reference....
der fehler der im release modus entsteht ist übrigends ein "Pufferüberlaufproblem"... ne Zeile in der der Fehler entsteht wird leider nicht anzeigt, daher bin ich etwas ratlos was den Fehler betrifft.....
greetz!
-
206RC++ schrieb:
1310-Logik schrieb:
Runtime Library statisch linken
Vertexwahns Libraries auch, wenn nötigTh schrieb:
Nein, z.B. die msvcr71.dll muß explizit mitgegeben werden (oder eben statisch gelinkt werden), da nicht jeder eine IDE installiert hat -)
wie verlinkt man denn statisch? bzw. wie verlinkt man überhaupt? include?
Projekteinstellungen -> Linker..
-
moin...
also hab die exe und csv files mal auf nen anderen rechner kopiert und es treten sofort fehlermeldungen über fehlende dlls auf... mscoree.dll, msvcr80.dll, mscvp80.dll... Wennn ich die manuell in den Ordner lade kommt auch ein Fehler, dass die DLL Dateien beschädigt sein und dass ich das .NET FrameWork neu installieren soll....
Habe auch mal probiert in den Projekteinstellungen die Dll's hinzuzufügen, dann kommen jedoch auch Fehlermeldungen, dass sie nicht korrekt geöffnet werden könnenn.........
Könnt ihr mir helfen????
GLG
-
das ist dann ein .NET typisches problem
programme die mit dem framework geschrieben wurden brauchen auch dieses framework installiert auf den zielrechner
hatte auch lange gesucht und rumgefragt und probiert ein framework programm auf ein anderen pc wo keines installiert ist zu portieren - funktioniert nicht
{ausserdem gehoert das wenn du mit .NET arbeitest in den anderen forum}
http://www.c-plusplus.net/forum/viewtopic-var-t-is-117645-and-highlight-is-.html
-
Aso, das ist schlecht... naja mal schauen wie ich das löse.... danke...
arbeite mit c++ aber die fehlermeldung meldet halt .NET, warum auch immer...
grüße
-
es kommt auf deine zugriffe an, wenn du methoden aus dem framework nimmst ist des klar
zb
using namespace system;
usw
{kenn ausn kopf grad kaum beispiele, hab seit ewigkeiten kein framework mehr benutzt}
-
"Microsoft Visual C++ 2005 Redistributable Package (x86)"
ürde mich dann wahrscheinlich auch helfen oder? Brauch ich dann trotzdem zusätzlich noch DLLs etc???
Grüße
-
"Mit diesem Paket werden Laufzeitkomponenten der C Runtime- (CRT-), Standard C++-, ATL-, MFC-, OpenMP- und MSDIA-Bibliothek installiert."
hmm - weiss nicht, probiers mal, je nachdem was du benutzt koennte es gehen - das komische ist nur das du eine fehlermeldung zu .NET bekommst, und dieses framework bekommst du mit diesem package nicht
{dabei angemerkt, ich kenne niemanden mehr der framework nicht installiert hat #gg}ich selber progge meistens bis fast immer mit statisch gelinkter mfc
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.