Nano Hash - криптовалюты, майнинг, программирование

КАК передать хэши массивов VB .NET в VBA через COM?

В настоящее время я пытаюсь передать массив объектов в VBA, но Excel жалуется на следующее:

«Функция или интерфейс помечены как ограниченные, или функция использует тип автоматизации, не поддерживаемый в Visual Basic».

Я посмотрел в Интернете и видел похожие проблемы, но не тот, который я пытаюсь сделать.

Моя функция объявлена ​​следующим образом:

<ComClass(Class1.ClassId, Class1.InterfaceId, Class1.EventsId)> _
Public Class Class1

#Region "COM GUIDs"
...
#End Region

Public Sub New()
    MyBase.New()
End Sub

Private Const AT_HOME As Boolean = True
Public Function hello() As System.String()
    Dim a(10) As String

    a(0) = "hello"
    a(1) = "Goodbye"

    Return a
End Function
Public Function CallArray(ByVal serviceName As String, _
                                    ByVal effectiveDate As String,
                                    ByVal serviceParams() As System.Object,
                                    ByRef ArrayRes() As System.Object) As System.Boolean

VBA жалуется на System.Objects, мой вопрос в том, как, черт возьми, вы должны передавать и возвращать массивы из .NET в VBA. Кроме того, данные, которые будут находиться в ArrayRes(), имеют смешанный тип, это не просто строки и т. д., это массив массивов, которые могут содержать строки, целые числа, удвоенные и т. д.

Я выбрал VB .NET, потому что полагал, что его будет проще сопоставить с VBA.

И последнее, если System.Object и массивы в VB .NET не подходят, т.е. может быть есть другой способ через коллекции или списки, то я открыт для этого. Мне просто нужно получить эти данные в VBA. Также я мог бы перейти на C #, если это будет необходимо.

Спасибо за любую помощь или рекомендации

06.05.2012

  • Я подозреваю, что настоящая проблема заключается в том, как вы раскрываете эту функцию. Является ли он на самом деле частью объявления интерфейса <ComVisible(true)> и использует атрибут ‹InterfaceType›`? Опубликуйте больше кода. 06.05.2012
  • Это настоящий COM-класс в Visual Studio под VB .NET, общедоступная функция hello работает отлично. Поэтому я не думаю, что это связано с тем, что я неправильно раскрываю функции. Их можно вызывать, но это проблема с передачей типов данных из VBA в VB .NET, и они различаются на более низком уровне. Итак, что мне нужно, так это то, какие типы данных объектов могут быть переданы между ними или как это сделать. Я бы подумал, что Microsoft опубликует что-нибудь по этому поводу, имея в виду, что это их продукты, и возможность передавать типы данных массивов, хэшей и т. д. является довольно стандартным материалом. 07.05.2012
  • а(1) = До свидания. Разместите это в своем вопросе. 07.05.2012
  • Я добавил больше кода в исходный пост, который показывает атрибут типа интерфейса и т. д. 07.05.2012

Ответы:


1

Исправлено: поступающие данные не были в нужном формате, поэтому я создал функцию для форматирования и обработки данных.

07.05.2012
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..