Witam.
Mam problem z c_str(). Kod mojego programu, był tworzony bodajże pod C++ Builder 2007. Program działał prawidłowo. Chce ten sam kod uruchomić na obecnie najnowszej wersji środowiska: C++Builder 10.1 Berlin.
#include <vcl.h>
#pragma hdrstop
#include "Unit3.h"
#include "Unit2.h"
#include <math.h>
#include <fstream.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
Ta linijka:
1:
MessageBox(Handle,("Twój wynik został zapisany do katalogu " + Label10->Caption).c_str(), "", MB_OK | MB_ICONINFORMATION);
Wyrzuca takie błędy:
[bcc32 Error] Unit3.cpp(144): E2034 Cannot convert 'wchar_t *' to 'const char *'
[bcc32 Error] Unit3.cpp(144): E2342 Type mismatch in parameter 'lpText' (wanted 'const char *', got 'wchar_t *')
Gdy to zakomentuję to mam problem z kodem(kompilator nie wyrzuca błędów,ale kod działa niepoprawnie):
2:
Te poniższe 2 linijki działają prawidłowo...,
ofstream outfile;
outfile.open(("Wyniki\\"+Label10->Caption+"\\"+i+".txt").c_str());
...ale kolejne nie:
outfile <<("Poziom trudności: "+Label12->Caption).c_str();
outfile<<endl;
outfile <<("Ilość poprawnych odpowiedzi w procentach: "+ Label4->Caption+" %").c_str();
outfile<<endl;
outfile <<("Ilość wykonanych działań: "+Label17->Caption).c_str() ;
outfile<<endl;
Wynik powyższych linijek:
245acbc
245a15c
24eb214
Gdy w labelu jest liczba poradziłem sobie(obszedłem problem), korzystając z funkcji StrToInt, ale z napisem nie mogę sobie poradzić.
Bardzo proszę o pomoc. Kombinuje i kombinuje i nadal nie działa. Proszę o podanie kodu.