Главная страница
    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
1-1268895548
Kolan
2010-03-18 09:59
2011.10.16
Как узнать что значит Event в сообщении?


1-1269120802
olookin
2010-03-21 00:33
2011.10.16
Обновление TChart для показа визуальных Parent-элементов


4-1217632047
sssyura
2008-08-02 03:07
2011.10.16
SHGetSpecialFolderPath


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


2-1308756932
Тимофей Ю.
2011-06-22 19:35
2011.10.16
динамический массив начинается 1 элемента





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский