Host->Navigate("www.google.com");HRESULT Host::Navigate(LPSTR url)
{BSTR strURL;
strURL=SysAllocStringByteLen((const char *)url,sizeof(url));
MessageBoxW(0,strURL,strURL,0);}
弹出的对话框是个乱码 why?

解决方案 »

  1.   

    sizeof(url),为这个URL字符指针的大小,结果应该为4.
      

  2.   

    shallchen(shell)说得没错,url的长度要单独传进来。
      

  3.   

    WCHAR* lpwcURL =NULL;
    lpwcURL = (WCHAR*)LocalAlloc(LMEM_FIXED|LMEM_ZEROINIT,lstrlen(url)*sizeof(url));
    MultiByteToWideChar(CP_ACP,0,url,lstrlen(url),(WCHAR*)lpwcURL,lstrlen(url)*sizeof(url));
    strURL=SysAllocString(lpwcURL);
    我也知道是长度不对 但不知道为什么,还有就是有没有更好的办法,上面的是我的奔招