void CbrowserDlg::OnBnClickedButtonbr()
{
// TODO: Add your control notification handler code here
m_browser.Navigate("www.microsoft.com", 0, 0, 0, 0);
}
cannot convert parameter 1 from 'const char [18]' to 'LPCTSTR'
Делаю по книжке первый Browser на Visual Studio 2005, сделал все как в книге,
Создал variable m_browser,
при запуске, выдает ошибку в коде:
Код:
[COLOR="Red"]Ошибка: error C2664: 'CExplorer1::Navigate' : cannot convert parameter 1 from 'const char [18]' to 'LPCTSTR'[/COLOR]
Код:
void CbrowserDlg::OnBnClickedButtonbr()
{
// TODO: Add your control notification handler code here
char szAdr[128] = "www.microsoft.com\0";
m_browser.Navigate((LPCTSTR)szAdr, 0, 0, 0, 0);
}
{
// TODO: Add your control notification handler code here
char szAdr[128] = "www.microsoft.com\0";
m_browser.Navigate((LPCTSTR)szAdr, 0, 0, 0, 0);
}
[COLOR="Red"]Error 1 error LNK2001: unresolved external symbol "public: void __thiscall CbrowserDlg::OnBnDoubleclickedButton1(void)" (?OnBnDoubleclickedButton1@CbrowserDlg@@QAEXXZ) browserDlg.obj [/COLOR]
Цитата: lexus05
не помогло...
[COLOR="Red"]Error 1 error LNK2001: unresolved external symbol "public: void __thiscall CbrowserDlg::OnBnDoubleclickedButton1(void)" (?OnBnDoubleclickedButton1@CbrowserDlg@@QAEXXZ) browserDlg.obj [/COLOR]
[COLOR="Red"]Error 1 error LNK2001: unresolved external symbol "public: void __thiscall CbrowserDlg::OnBnDoubleclickedButton1(void)" (?OnBnDoubleclickedButton1@CbrowserDlg@@QAEXXZ) browserDlg.obj [/COLOR]
Помогло. Просто теперь у вас нет реализации функции
Код:
CbrowserDlg::OnBnDoubleclickedButton1(void)
Сделал, заработало. Только почему в броузере, в место сайта, китайские иероглифы?
Вот и пишете туда иероглифы. Посмотрите, что означает дефайн LPCTSTR.
Код:
m_browser.Navigate(_T("www.microsoft.com"), 0, 0, 0, 0);
?
Если определить должным образом макрос _T (или подключить хедер где он определен), то правильней конечно. )
Спасибо, теперь все ок! ))))
Цитата: aks
Если определить должным образом макрос _T (или подключить хедер где он определен), то правильней конечно. )
Если не ошибаюсь в Visual C++ он по дефолту подключен
Кем и куда? =)
Студией к каждому новому проекту =)
В большистве создаваемых проектов <tchar.h> автоматически включается средой в stdafx.h.
Цитата: Phodopus
Студией к каждому новому проекту =)
Нет. =)
Project->Properties->General-> [COLOR="Red"]Character Set[/COLOR] нужно выставить в [COLOR="SeaGreen"]Not Set.[/COLOR] Тогда можно будет использовать в коде строки в проекте не объявляя для них переменных.
Если этого не сделать, то получается, что ты предаешь в качестве параметра массив символов ([COLOR="Red"]const char [18][/COLOR]), а по правилам там должен быть адрес строки([COLOR="Red"]'LPCTSTR'[/COLOR]).
Надеюсь поможет:)
Цитата: alex2286
Все дело в настройках проекта. Это можно исправить.
Project->Properties->General-> [COLOR="Red"]Character Set[/COLOR] нужно выставить в [COLOR="SeaGreen"]Not Set.[/COLOR] Тогда можно будет использовать в коде строки в проекте не объявляя для них переменных.
Если этого не сделать, то получается, что ты предаешь в качестве параметра массив символов ([COLOR="Red"]const char [18][/COLOR]), а по правилам там должен быть адрес строки([COLOR="Red"]'LPCTSTR'[/COLOR]).
Надеюсь поможет:)
Ты говоришь глупость.
Рекомендую разобраться сначала самому с "Character Set", прежде чем постить такие "советы".
По какой книжке пишете? Хотелось бы тоже почитать.
Из msdn'а (http://msdn.microsoft.com/en-us/library/aa752093(VS.85).aspx) синтаксис этой функции таков:
object.Navigate( _
url As String, _
[Flags As Variant,] _
[TargetFrameName As Variant,] _
[PostData As Variant,] _
[Headers As Variant])
И описание параметра:
"TargetFrameName
Optional. A case-sensitive string expression that evaluates to the name of the frame in which to display the resource. The possible values for this parameter are.
_blank
Load the link into a new unnamed window.
_parent
Load the link into the immediate parent of the document the link is in.
_self
Load the link into the same window the link was clicked in.
_top
Load the link into the full body of the current window.
WindowName
A named HTML frame. If no frame or window exists that matches the specified target name, a new window is opened for the specified link."
К примеру, если взять возможное значение _top то как выглядит синтаксис функции?
Как я не пробовал не получается.
Например:
void CAIv2Dlg::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
m_browser.Navigate(_T("http://www.microsoft.com"),0,_T("_top"),0,0);
}
Выдает ошибку error C2664: 'CExplorer1::Navigate' : cannot convert parameter 3 from 'const wchar_t [5]' to 'VARIANT *'
Смотрел описание этого типа - ничего не понял( Помогите кто нибудь.....
нашел решение проблемы