Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.10.16;
Скачать: [xml.tar.bz2];

Вниз

Вызов 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
15-1308742325
>|<
2011-06-22 15:32
2011.10.16
Печать наклейки на USB-принтере


2-1309187909
ShegAI
2011-06-27 19:18
2011.10.16
StayOnTop при длительных операциях


15-1308896288
eXAAAXe
2011-06-24 10:18
2011.10.16
Полноэкранный режим в Ютубе.


2-1309475190
Den
2011-07-01 03:06
2011.10.16
not VarIsEmpty не срабатывает с функцией find v excel?


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский