Форум программистов, компьютерный форум CyberForum.ru

В VC++7 ATL, defaultvalue не работает при late-binding - C++

Восстановить пароль Регистрация
 
idhunter
0 / 0 / 0
Регистрация: 07.05.2008
Сообщений: 10
28.09.2010, 17:46     В VC++7 ATL, defaultvalue не работает при late-binding #1
Добрый день,

Столкнулся с проблемой - методы ATL COM объекта, откомпилированного под VC++7, не могут вызываться при late-binding без дефолтных параметров. Причем при компиляции под VC++6 это работает прекрасно!

Т.е. метод ниже:

[id(1), helpstring('method AA')] HRESULT AA([in, defaultvalue(1)] LONG abc);

можно вызвать только как:

Object.AA 1

но не

Object.AA

Проверял в VB6 и VBScript. Однако если использовать early-binding (объявлять объект как Dim Object As LibraryName.ClassName), то все работает.

При компиляции же с VC++6 правильно работает и early, и late binding.

Если не использовать attributed объекты, а создавать раздельные h и idl-файлы (т.е. всё как в VC++6), то всё работает нормально. Конечно, не использовать attributed расширений - это тоже выход, но не хотелось бы всё-таки от них отказываться.

Поиск по инету ничего не дал. Может, ключик какой-то нужно указывать для компиляции IDL или директиву какую?

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2010, 17:46     В VC++7 ATL, defaultvalue не работает при late-binding
Посмотрите здесь:

При запуске из среды программа работает, при запуске выполняемого файла выдает ошибку C++
C++ VC++6.0/ATL - ошибка сборки в режиме Release при исп.функций из math.h
не могу разобраться с написанием ActiveX в ATL C++
C++ где искать DllMain в ATL 7.0
C++ Программа при релизе не работает, а при дебаге работает
ATL C++
ATL Service и переодическая задача C++
C++ В ATL нашел код: __interface - как это работает

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 15:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru