Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация

builder ХЕ3 [SHBrowseForFolder]

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C/C++ только в данном разделе

Ответ
 
Опции темы
Старый 12.10.2015, 19:33   #1
 Фельдмаршал
Аватар для Dimedrol1536
 
Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(
Регистрация: 22.02.2011
Сообщений: 949
Популярность: 34698
Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
Отправить сообщение для Dimedrol1536 с помощью ICQ Отправить сообщение для Dimedrol1536 с помощью Skype™
 
По умолчанию builder ХЕ3 [SHBrowseForFolder]

Код:
void __fastcall TForm1::Action34Execute(TObject *Sender)
{
	PBrowseInfoA bi;
	memset(&bi, 0, sizeof(bi));

	bi->ulFlags   = BIF_STATUSTEXT;
	bi->hwndOwner = Form1->Handle;
	bi->lpszTitle = ("Выбор дериктории установки PointBlank:");

	LPITEMIDLIST pidl=SHBrowseForFolderA(&bi);
	if(pidl != NULL)
	{
	  char buffer[_MAX_PATH] = {'0'};
	  if(::SHGetPathFromIDList(pidl, buffer) != 0)
	  {
		data=buffer;
	  }
	  CoTaskMemFree(pidl);
   }
}
Ругается тут
Код:
LPITEMIDLIST pidl=SHBrowseForFolderA(&bi);
Код:
E2034 Cannot convert '_browseinfoA * *' to '_browseinfoA *'
E2342 Type mismatch in parameter 'lpbi' (wanted '_browseinfoA *', got '_browseinfoA * *')
Не пойму из-за чего так. Может кто плодскажит.
На ХЕ8 не было ошибки.

Добавлено через 6 минут
LPITEMIDLIST pidl=SHBrowseForFolderA(&*bi);
LPITEMIDLIST pidl=SHBrowseForFolderA(*&bi);
LPITEMIDLIST pidl=SHBrowseForFolderA(*bi);
Всё приводит к Access violation.

Добавлено через 14 минут
Проблема решена.
Код:
Winapi::Shlobj::BROWSEINFO bi = {0};
	bi.hwndOwner = Handle;
	bi.ulFlags = BIF_NEWDIALOGSTYLE | BIF_EDITBOX | BIF_BROWSEFORCOMPUTER;
	bi.lpszTitle = (wchar_t*)"Выбор дериктории:";
	LPITEMIDLIST pidl = SHBrowseForFolder((_browseinfoA*)&bi);
	if(pidl != NULL)
	{
	  char buffer[_MAX_PATH] = {'0'};
	  if(::SHGetPathFromIDList(pidl, buffer) != 0)
	  {
		//buffer;
	  }
	  CoTaskMemFree(pidl);
   }

Последний раз редактировалось Dimedrol1536; 12.10.2015 в 19:47. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Builder WinLocker v0.3 100-Faiker-100 Школа Читера 5 31.07.2013 21:45
C++ Builder nitrotek Общение разработчиков 2 01.02.2013 21:37
[Помогите!] Skylab builder kovr-aton Общение и обсуждение 0 11.11.2011 23:18

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 18:33.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net