1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Cannot convert 'AnsiString' to 'const char *'

Discussion in 'C' started by codexparse, Nov 4, 2007.

  1. codexparse

    codexparse New Member

    Joined:
    Nov 4, 2007
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    I am writing a browser program in C++ Builder 6 that loads a web page using the following code:

    Code:
    void __fastcall TForm1::ToolButton1Click(TObject *Sender)
    {
         wchar_t buff[100];
         MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,
         "http://www.cboard.cprogramming.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:

    Code:
    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.
     

Share This Page