1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

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