![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ошибка компиляции при импорте библиотек [Delphi, Windows]
almas © (2005-12-10 20:45:00)Здравствуйте!
Короче делаю следующее:
- открываю Project -> Import Type Library
- в списке выбираю STATISTICA 6.0 Object Library (Version 1.0)
- нажимаю Create Unit...
- запускаю проект, и....
Ошибка компиляции!
Build
[Error] STATISTICA_TLB.pas(10084): Incompatible types: 'Variant' and 'PSafeArray'
[Error] STATISTICA_TLB.pas(10373): Type not allowed in OLE Automation call
....
и таких штук 6-7
приведу код, где найдена 1-я ошика:
function TSpreadsheet.Get_CaseValues(CaseNo: SYSINT): PSafeArray;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.CaseValues[CaseNo];
end;
и 2-я ошибка:
procedure TSpreadsheet.Set_CaseValues(CaseNo: SYSINT; var Values: PSafeArray);
{ Warning: The property CaseValues has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant as a passthrough. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.CaseValues := Values;
end;
Объясните пожалуйста, что всё это значит?????
Спасибо!
Набережных С. (2005-12-12 19:41:00) [1]
> almas (10.12.05 20:45)
Скорее всего, PSafeArray содержит данные, с которыми Delphi не умеет работать, а работать она умеет тодько с PSafeArray, содержащим integer. Вот она и воткнула, что смогла, честно об этом предупредив. Надо смотреть библиотеку типов на предмет содержимого миассива, или документацию при наличии оной. Ну а дальше вручную реализовывать. Ничего особо сложного, но возни прилично.