Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Typinfo - странная ошибка.

3.1K
28 июня 2004 года
Photus
19 / / 18.07.2003
Ошибка возникает при линковке.

[Linker Error] Unresolved external '__fastcall Typinfo::GetPropList(System::TObject *, Typinfo::TPropInfo * *&)' referenced from C:\ADEL PROJECTS\TEST\PROPLIST\UNIT1.OBJ

Возникает для любой функции GetPropList(их 3 штуки). Но самое странное что все другие(которые пробовал) функции модуля TypInfo.hpp нормально работают(т.е. если закоментарить строку вызова GetPropList и оставить только всякие там SetPropValue то всё пашет).
10
29 июня 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Photus
[Linker Error] Unresolved external '__fastcall Typinfo::GetPropList(System::TObject *, Typinfo::TPropInfo * *&)' referenced from C:\ADEL PROJECTS\TEST\PROPLIST\UNIT1.OBJ


Действительно, странно. Может быть, попробовать заставить Билдер пересоздать typinfo.hpp? Например, переименовать существующий в .bak или .old...

3.1K
29 июня 2004 года
Photus
19 / / 18.07.2003
Цитата:
Originally posted by smartsoft

Действительно, странно. Может быть, попробовать заставить Билдер пересоздать typinfo.hpp? Например, переименовать существующий в .bak или .old...



Я даже пересобирал typinfo.pas. НЕ помогло. Щас буду просто по исходникам typinfo воссоздавать на Си то что мне нужно. Потому что нужно и сейчас. :)

3.1K
29 июня 2004 года
Photus
19 / / 18.07.2003
В общем вот реализация на Си функции int __fastcall GetPropList(PTypeInfo TypeInfo, PPropList &PropList); . Может если кто столнётся, то понадобится:


PTypeInfo U=PTypeInfo(__classid(TButton)->ClassInfo());
PPropList PropList;
int Count = GetTypeData(U)->PropCount;
if(Count > 0)
{
PropList = PPropList(new char[Count * sizeof(void *)]);
GetPropInfos(U, PropList);
}

В PropList - список свойств. в Count - количество свойств.

Можно теперь использовать это так:

Memo1->Lines->Clear();
for(int i=0;i<Count;i++)
{
Memo1->Lines->Add(PropList->Name);
}
delete[] PropList;//удалять ведь надо то что насоздавали :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог