Принятие байтового массива, взаимодействие vb6 с C #
Я делаю приложение, которое связывает vb6 с криптографической оберткой. Часть .net и interop до сих пор в порядке, полностью работает.
Поскольку мой клиент это тестирует, у меня просто быстрый вопрос:
[ComVisible(true)]
public SomeObjectComVisible GetThat(byte[] array){ ... }
До сих пор я использовал любые типы, которые я использовал для com или int и string, и до сих пор проблем не было.
Это нормально использовать (.net)byte
или я должен использовать*char
?
Когда я отмечаю сборку как видимую и регистрируюсь для взаимодействия, она создает оболочку для нее, или я должен использовать какой-то неуправляемый тип?
Ах, это vb6, а не vbscript.
бесконечно благодарен
для тех, кто ищет ответ:
public SomeObjectComVisible GetThat([MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_UI1)]byte[] array)
проблема с массивами.http://msdn.microsoft.com/en-us/library/z6cfh6e6.aspx а такжеhttp://msdn.microsoft.com/en-us/library/75dwhxf7.aspx
Любой небитабильный тип может быть рутиной. Вы можете указать свои собственные типы, чтобы они использовались, вам просто нужно использовать
[ComVisible(true),
ClassInterface(ClassInterfaceType.None),
ProgId("SomeNamespace.SomeClass"),
Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")]
на вершине класса
Большое спасибо вам всем.
Большая помощь