I am writing a browser program in C++ Builder 6 that loads a web page using the following code:

void __fastcall TForm1::ToolButton1Click(TObject *Sender)
{
     wchar_t buff[100];
     MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,
     "http://www.daniweb.com", -1, buff, sizeof(buff));
     CppWebBrowser1->Navigate(buff, 0, 0, 0, 0);
}

To include the address bar implementation, I need a temporary string derived from an edit box. This is the code I have tried but receive the error that I cannot convert an AnsiString to const char * and require a type conversion:

void __fastcall TForm1::ToolButton1Click(TObject *Sender)
{
     const char *tempstring = Edit1->Text;
     wchar_t buff[100];
     MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,
     tempstring, -1, buff, sizeof(buff));
     CppWebBrowser1->Navigate(buff, 0, 0, 0, 0);
}

I've tried to decipher how the TStringConverter VCL class works but I have been unsuccesful determining how it works either:

TStringConverter::AnsiToWide

Converts a null-terminated ANSI string to a wide (Unicode) string.
static LPWSTR AnsiToWide(LPCSTR src);

WideToAnsi calls MultiByteToWideChar(), using the ANSI code page, to convert the ANSI string specified by src to a null-terminated string of Unicode characters. The source string may be from a multibyte character set.

Thanks in advance for suggestions anyone might have as to how I can resolve this programming obstacle.

After a little googling I found that Borland's AnsiString is actually a class, much like std::string.

So your code should say:

MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,
    tempstring.c_str(), -1, buff, sizeof(buff));

Hope this helps.

This is my proposal

CppWebBrowser1->Navigate (WideString(Edit1->Text));

This work certainly

You can't just assign a const char * to anything... You are infact assigning an address, not a temp string. And I doubt those are your intentions... Instead use strcpy() or something similar.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.