powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Передать масив COM-компоненте
1 сообщений из 1, страница 1 из 1
Передать масив COM-компоненте
    #36393434
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть COM-компонента создана средствами VS2008 C++ в ATL, которая имеет метод с входным параметром SAFEARRAY(VARIANT) тоесть масив, вот его интерфейс:
Код: plaintext
1.
2.
3.
4.
5.
...  
      interface IArrayData : IDispatch {  
          [id(0x00000005), helpstring("method setArrayValue")]  
          HRESULT setArrayValue([in] SAFEARRAY(VARIANT) newVal);  
      };  
  ...
из фокса вызываю этот метод и передаю ему масив:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
DIMENSION laArrInp[ 2 ]  
  laArrInp[ 1 ] = "aaa"  
  laArrInp[ 2 ] =  2222   
    
  loAtlComObj = CREATEOBJECT("SimpComArray.ArrayData")  
  COMARRAY(loAtlComObj,  10 )  
    
  loAtlComObj.setArrayValue(@laArrInp)
если смотреть в отладчике, то COM-компонента масив получает, но когда я пытаюсь получить указатель на адрес данных массива:
Код: plaintext
HRESULT SafeArrayAccessData (SAFEARRAY * psa, void ** ppvData);
функция возвращает неправельный указатель. Я предполагаю, что нужно как-то по другому обьявлять масив на стороне VFP для передачи его COM-компоненте. Подскажите пожалуйста, в чём здесь проблема? Большое спасибо!
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Передать масив COM-компоненте
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]