Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2009, 02:59   #1
Equilibrium Keeper
 
Регистрация: 09.09.2009
Сообщений: 8
По умолчанию Ошибки при использовании ShellControls (TShellTreeView, etc)

У меня C++ Builder 2010 (CodeGear). Windows Vista.
Установил компоненты ShellControls из \Examples\CPP\Apps\ShellControls\
При попытке использовать компоненты, вроде TShellTreeView или TShellComboBox, вылетают ошибки. Причем вылетают они не только при запуске программы и работе с этими компонентами (но и в этих случаях тоже), но и даже попытке изменить корневую директорию в билдере. Вплоть до закрытия билдера с крит.ошибкой.

Вот, например, что выдает билдер, если я попытаюсь установить в качестве корня "Мой компьютер":
Код:
---------------------------
Error
---------------------------
Access violation at address 77CF7F1A in module 'ntdll.dll'. Read of address 00000004.
---------------------------
OK   Details <<   
---------------------------
[77CF7F1A]{ntdll.dll   } Unknown function at RtlAnsiStringToUnicodeString + $171
[0269333A]{bcbshlctrls.bpl} shellctrls.cpp.%DelphiInterface$t12IShellFolder%.$bdtr$qqrv (Line 333, "c:\program files\embarcadero\rad studio\7.0\include\vcl\systobj.h" + 6) + $8
[02693638]{bcbshlctrls.bpl} shellctrls.cpp.TShellFolder.$bdtr$qqrv (Line 182, "shellctrls.cpp" + 9) + $53
[0269C6F0]{bcbshlctrls.bpl} shellctrls.cpp.TCustomShellTreeView.ClearItems (Line 2775, "shellctrls.cpp" + 9) + $2C
[50242C3C]{vcl140.bpl  } ComCtrls.TTreeNodes.GetCount (Line 9332, "ComCtrls.pas" + 2) + $11
[0269B8DE]{bcbshlctrls.bpl} shellctrls.cpp.TCustomShellTreeView.CreateRoot (Line 2419, "shellctrls.cpp") + $3
[0269C472]{bcbshlctrls.bpl} shellctrls.cpp.TCustomShellTreeView.RootChanged (Line 2695, "shellctrls.cpp") + $3
[0269B272]{bcbshlctrls.bpl} shellctrls.cpp.TCustomShellTreeView.SetRoot (Line 2270, "shellctrls.cpp" + 6) + $3
[5005249F]{rtl140.bpl  } TypInfo.SetUnicodeStrProp (Line 2379, "TypInfo.pas" + 24) + $5
[501EB597]{vcl140.bpl  } StdCtrls.TCustomComboBoxStrings.Get (Line 3018, "StdCtrls.pas" + 9) + $17
[500C3F7F]{rtl140.bpl  } StrHlpr.UnicodeFree (Line 464, "StrHlpr.pas" + 1) + $4
[02674A43]{dclshlctrls.bpl} ustring.cpp.UnicodeString.$bdtr$qqrv + $F
[02671D47]{dclshlctrls.bpl} rootedit.cpp.RootPathEditor (Line 48, "rootedit.cpp" + 25) + $36
[20D96011]{designide140.bpl} DesignEditors.TPropertyEditor.SetStrValue (Line 862, "DesignEditors.pas" + 4) + $9
[02672267]{dclshlctrls.bpl} rootedit.cpp.Edit (Line 116, "rootedit.cpp" + 2) + $3C
[500361EA]{rtl140.bpl  } SysUtils.Supports (Line 21083, "SysUtils.pas" + 1) + $9
[2096A036]{coreide140.bpl} PropInsp.TPropertyInspector.PropListEditDblClick (Line 869, "PropInsp.pas" + 20) + $5
[20EB2F8D]{vclide140.bpl} IDEInspListBox.TInspListBox.DoEditDblClick (Line 617, "IDEInspListBox.pas" + 2) + $A
[20EB4D57]{vclide140.bpl} IDEInspListBox.TInspListBox.ListButtonClick (Line 1307, "IDEInspListBox.pas" + 2) + $2
[50296367]{vcl140.bpl  } Controls.TControl.Click (Line 7178, "Controls.pas" + 9) + $8
[20EAA93A]{vclide140.bpl} IDEListBtns.TListButton.WMLButtonUp (Line 582, "IDEListBtns.pas" + 8) + $11
[50295DFC]{vcl140.bpl  } Controls.TControl.WndProc (Line 7062, "Controls.pas" + 91) + $6
[50076360]{rtl140.bpl  } Classes.StdWndProc (Line 13014, "Classes.pas" + 8) + $0
[50299F53]{vcl140.bpl  } Controls.TWinControl.IsControlMouseMsg (Line 9596, "Controls.pas" + 1) + $9
[5029A6C0]{vcl140.bpl  } Controls.TWinControl.WndProc (Line 9819, "Controls.pas" + 144) + $6
[50299D60]{vcl140.bpl  } Controls.TWinControl.MainWndProc (Line 9540, "Controls.pas" + 3) + $6
[50076360]{rtl140.bpl  } Classes.StdWndProc (Line 13014, "Classes.pas" + 8) + $0
[502C8749]{vcl140.bpl  } Forms.TApplication.ProcessMessage (Line 9784, "Forms.pas" + 30) + $1
[502C878E]{vcl140.bpl  } Forms.TApplication.HandleMessage (Line 9814, "Forms.pas" + 1) + $4
[502C8AB9]{vcl140.bpl  } Forms.TApplication.Run (Line 9951, "Forms.pas" + 26) + $3
[0042D94A]{bds.exe     } bds.bds (Line 200, "" + 8) + $FFFB
Также вылетала ошибка abnormal program termination.
При попытке открыть "Мои документы" прога висла.
Закончилось все тем, что, после очередного краша, форма отказалась открываться в билдере.

При установке компонента никаких ошибок не возникало.
Сбилдил bcbshlctrls.bpk
Сбилдил dcbshlctrls.bpk, установил.
Выглядят вполне нормально, но при попытке использования - такая вот хрень.

Вопросы: в чем проблема, из-за чего? Как исправить?
Equilibrium Keeper вне форума Ответить с цитированием
Старый 09.09.2009, 08:16   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Похоже на то что либо компоненты гнилые, либо в висте их методы не позволяются.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.09.2009, 10:36   #3
Equilibrium Keeper
 
Регистрация: 09.09.2009
Сообщений: 8
По умолчанию

Компоненты шли вместе с RAD Studio 2010, что, конечно, не исключает таковой возможности.
Режим совместимости с Windows XP не помогает (хотя, когда он помогал?..).
Нужна поддержка обеих осей (а в ближайшем будущем, видимо, еще и Win7).

Тогда, возможно, есть альтернатива этим компонентам?
В принципе, сейчас программа использует компоненты Win3.11
TDriveComboBox
TDirectoryListBox
TFileListBox
Претензий к ним нет - функциональность и надежность, как у дубового табурета, изготовленного с применением полусотни гвоздей и литра момента. Вот только удобство и внешний вид примерно такой же.
В то время, как TShellTreeView - это тот же виндосовский проводник. Привычный, удобный, функциональный.
А TShellListView имеет ряд интересных возможностей, касательно отображения файлов.
В общем очень хочется либо их, либо их аналог...

P.S. Также буду рад за ссылки на любые доки касательно написания компонентов для BCB для "чайников" (однако это не исключает вышеизложенного, ибо учусь я медленно).
Equilibrium Keeper вне форума Ответить с цитированием
Старый 09.09.2009, 18:29   #4
Equilibrium Keeper
 
Регистрация: 09.09.2009
Сообщений: 8
По умолчанию

С 20го раза смог скомпилировать, вот:
http://webfile.ru/3904848
Можно потыкать по разделам и быстро поймать эти самые ошибки.
Equilibrium Keeper вне форума Ответить с цитированием
Старый 11.09.2009, 18:27   #5
Equilibrium Keeper
 
Регистрация: 09.09.2009
Сообщений: 8
По умолчанию

Проверил на XP - те же ошибки. Ругается на библиотеки или выдает "разрушительный сбой". Поискал в инете кастомные компоненты - большинство ориентировано либо на BCB6, а один работает под 2009 билдером. Под 2010 ничего не обнаружил.
Есть какой-нибудь вариант решения этой проблемы? Или начинать писать самому/ждать апдейта?
Equilibrium Keeper вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при использовании copyfile The Best Общие вопросы Delphi 20 22.07.2009 13:26
Отключение ActiveX при использовании JavaScript POPOV JavaScript, Ajax 2 02.07.2009 15:47
Проблемка при использовании регрессии 500_pinguins Microsoft Office Excel 0 16.06.2009 08:17
Баллонная подсказка при использовании Shell_NotifyIcon Fantom Win Api 1 28.09.2008 00:41
Виснет приложение при использовании winsock TR1PL3X Работа с сетью в Delphi 1 31.03.2008 09:14