release und debug
-
Hallo leute..ich habe folgendes problem:
habe bei meiner debug-version keine fehler, die mir angezeigt werden und somit läuft das programm einwandfrei..
jetzt wollte ich mir meine release-version erstellen lassen und bekomme nur fehlermeldungen..
z.b.:
für die zeile:((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString("all reference");bekomme ich
error C2664: 'CComboBox::AddString': Konvertierung des Parameters 1 von 'const char [14]' in 'LPCTSTR' nicht möglichdies hat was mit dem zeichensatz zu tun, habe ich festgestellt.ich habe bei debug "nichts festgelegtes" gehabt und nun bei release geändert, so dass ich auch die gleiche einstellung habe, wie bei debug..
leider geht bei mir die debug.exe und die release.exe gar nicht..wieso??wie könnte ich dies ändern bzw. zum laufen bringen?
-
"Nichts festgelegtes" gibt es nicht
Schau mal unter Projekt->Einstellungen->C/C++ nach, welche Makros jeweils vordefiniert werden, vermutlich passt da eine UNICODE-Einstellung nicht zusammen.
-
ja, also gut..dort habe ich "nicht festgelegt" bzw. "unicode"..habe es geändert und er macht mir mein release, jedoch starten läßt sich die .exe immer noch nicht bzw. stürtzt ab..wie kann ich dies soweit bringen, dass mir die .exe normal läuft??
-
Der Fehler sieht mir nach einem typischen UNICODE-Problem aus (gerade wenn dort von LPCTSTR die Rede ist). Den kannst du beheben, indem du deine Anwendung UNICODE-tauglich machst (im vorliegenden Fall heißt das
...->AddString(_T("all reference"));).Aber normalerweise ändert man auch nicht den Zeichensatz beim Übergang auf Release-Modus

-
@CStoll: ... er hat aber vermutlich VS-2005 und das Projekt mit dem Wizard angelegt und dan nur im Release Modus auf MBCS umgestellt.
-
ja, habe s mit vs 2005 gemacht..alles vom assistenten..
ich habe s jetzt geregelt, dass ich den zeichensatz von debug-modus nehme.also den gleichen.jetzt hat es geklappt..hätte da noch eine frage: ich benutze eine .dll, die mir funktionen zur verfügung stellt..habe es herausgefunden, dass ich komischerweise, diese .dll -datei immer im gleichen ordner haben muss, wie die .exe ist..wie kommt das??
-
Eine DLL muss gefeunden werden können. In der MSDN von LoadLibrary steht die Suchmethodik wie eine DLL gefunden wird.
http://msdn2.microsoft.com/en-us/library/ms684175.aspxWenn die DLL irgendwo außerhalb dieser Pfade steht wird sie eben nicht gefunden.
Für XP SP1 und Vista gibt es die nette Funktion: SetDllDirectory
http://msdn2.microsoft.com/en-us/library/ms686203.aspxSiehe auch
http://msdn2.microsoft.com/en-us/library/ms682586.aspx