Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.10.16;
Скачать: CL | DM;

Вниз

Вызов OLE из DelphiXE   Найти похожие ветки 

 
И. Павел ©   (2011-06-22 16:55) [0]

Здравствуйте.
Перешел, наконец-то на Delphi XE.

Вызов:

   A := CreateOleObject("...");
   A.SomeMethod("login", "password");


Привеодит к ошибке, т.к. аргументы заданы некорректно. Но если написать:

   A := CreateOleObject("...");
   A.SomeMethod(String("login"), String("password"));


то все работает. Получается, что литералы в XE - 8-мибитные? Или я чего-то недопонимаю?


 
И. Павел ©   (2011-06-22 16:57) [1]

> т.к. аргументы заданы некорректно

Не совсем правильно выразился. Точнее: компилятор не ругается, но OLE-объект не устраивает содержимое аргументов.


 
tesseract ©   (2011-06-22 17:02) [2]


> но OLE-объект не устраивает содержимое аргументов


OLE PWideChar обычно хочет. Что в tlb у объекта ?


 
И. Павел ©   (2011-06-22 18:11) [3]


> tesseract ©   (22.06.11 17:02) [2]

Спасибо. COM объект на работе. завтра посмотрю. Но скорее всего там все вшито в dll.

Просто странно, что литерал и переменная типа String воспринялись по разному.


 
tesseract ©   (2011-06-23 12:43) [4]


> Просто странно, что литерал и переменная типа String воспринялись
> по разному.


Вообще-то String<>Pchar, а wideString<>PwideChar. Так же как LongBool<>Boolean.


 
И. Павел ©   (2011-06-23 13:24) [5]

tesseract ©
Спасибо. Похоже, компилятору нужно было действительно точнее сообщить - переменные каких типов нужно передавать в функцию.

Импортировал tlb-файл. В качестве всех параметров функции ожидается "const xxx WideString".

В Delphi7 литералы нормально приводились к WideString. А в XE, похоже, действительно аргументы как-то по другому преобразуются.
Подключил к проекту файл с информацией о типах. Теперь, видимо, перед тем, как вызвать метод, Delphi производит преобразования типов и вызов "A.SomeMethod("login", "password");" работает.


 
tesseract ©   (2011-06-23 15:55) [6]


> В Delphi7 литералы нормально приводились к WideString.


Не замечал подобного в случае русского языка. Точно помню, что WideString использовал в принудительном порядке.



Страницы: 1 вся ветка

Текущий архив: 2011.10.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.006 c
2-1307957801
Jamix
2011-06-13 13:36
2011.10.16
KDTele Tools


15-1308393220
@!!ex
2011-06-18 14:33
2011.10.16
Задача: Золушка - New Generation


2-1308783149
Германн
2011-06-23 02:52
2011.10.16
Ошибка при удалении контролов


1-1269075838
O.O
2010-03-20 12:03
2011.10.16
Масштабирование формы


2-1309017333
Lithium
2011-06-25 19:55
2011.10.16
Консоль