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

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice