Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > error C2664


Автор: -Сергей- 8.2.2006, 18:00
Обьясните в чем ошибка
есть ф-я DWORD func(HWND hWndNotify, LPSTR lpszFileName)
есть диалог открытия opDlg
при func(0,opDlg->FileName); вылетает error C2664: cannot convert from 'System::String __gc *' to 'LPSTR'
Заранее спасибо!

Автор: _hunter 8.2.2006, 18:12
ошибка в том, что функция ожидает параметри типа LPSTR а ты ей даеш System::String __gc * что, естественно, ей ( точнее компилятору ) не нравится

Автор: -Сергей- 8.2.2006, 18:14
Спасибо, но я догадался уже.
Только как это исправить?
LPSTR это сhar*
как конвертнуть System::String __gc * в LPSTR?
На метод ToChar и ToCharArray тоже ругается.

Автор: _hunter 8.2.2006, 18:27
как ругается?
+ ты бы среду указал...

Автор: -Сергей- 8.2.2006, 18:34
Среда VC++ .net
Приложение - Windows Forms Application
На ToChar ругается так : error C2664: cannot convert from '__wchar_t (System::IFormatProvider __gc *)' to 'LPSTR'
А на ToCharArray ругается так: error C2664: cannot convert from '__wchar_t __gc[]' to 'LPSTR'


Автор: _hunter 8.2.2006, 18:39
посмотри в справке какие методы возвращают char* ( или аналоги ). их и используй

Автор: -Сергей- 8.2.2006, 18:41
Да че я только не смотрел, и справку, и MSDN и Google. Не помогает.

Автор: Hroft 9.2.2006, 19:53
А у этого System::String нету c_str() метода?
И это... w_char - это же двухбайтовые юникодовские, а LPSTR - просто char* же, их мешать так просто нельзя.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)