Panowie mam problem, właśnie przeszedłem z buildera 5 na studio xe, przeczytałem tutaj na forum, ze nalezy pozmieniac w opcjach directories and conditionals _TCHAR maps to: char i c_str () mial zwracac const char *, ale niestety nie robi tego, nadal c_str () zwraca mi wchar_t *
kod, który chcę uruchomić wygląda tak
KOD cpp: UKRYJ
if (CheckBox1->Checked)
plik = fopen ("baza.sql", "rb");
else
{
if (OpenDialog1->Execute ())
plik = fopen ( (OpenDialog1->FileName).c_str (), "rb" );
}
plik = fopen ("baza.sql", "rb");
else
{
if (OpenDialog1->Execute ())
plik = fopen ( (OpenDialog1->FileName).c_str (), "rb" );
}
jest to czesc aplikacji, która przenosze na RadXE, a to blad ktory generuje kompilator
KOD cpp: UKRYJ
[BCC32 Error] Unit1.cpp(42): E2034 Cannot convert 'wchar_t *' to 'const char *'
Full parser context
Unit1.cpp(34): parsing: void _fastcall TForm1::Button1Click(TObject *)
Full parser context
Unit1.cpp(34): parsing: void _fastcall TForm1::Button1Click(TObject *)
podaję link do tematu, ktory przeczytalem
http://programowanie.cal.pl/forum/viewtopic.php?f=16&t=1098#p7401
edit: oki, poradzilem sobie, ale zobaczcie na tego potwora:
KOD cpp: UKRYJ
if (OpenDialog1->Execute())
{
plik = _wfopen( (OpenDialog1->FileName).c_str (), ((String) "rb").c_str ()) ;
{
plik = _wfopen( (OpenDialog1->FileName).c_str (), ((String) "rb").c_str ()) ;
do tego musialem uzyc funkcji _wfopen, ktora przyjmuje z powodzeniem wchar_t *
Panowie jak macie cos bardziej eleganckiego, prosze o wrzucenie
Pozdrawiam!





