Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передать массив байт из VBA в C# через сокеты

50K
15 мая 2014 года
xk289sk
8 / / 05.01.2011
В приложении на VBA посылаю данные через импортированную функцию send (Windows Sockets 2):
 
Код:
Public Declare PtrSafe Function send Lib "ws2_32.dll" (ByVal socket As Long, buf() As Byte, ByVal buflen As Long, ByVal flags As Long) As Long
В приложении на C# принимаю данные:
 
Код:
bytes = new byte[1024];
int bytesRead = socket.Receive(bytes);
На выходе мусор.

Если, ради эксперимента, в объявлении функции send в VBA-приложении поменять тип второго параметра с
 
Код:
buf() As Byte
на
 
Код:
buf As Byte
и передать один байт, то все ОК.

Но как передавать массивы байт? Где-то читал, что сложные структуры данных передают так:
 
Код:
ByVal buf As String
но и тут на выходе мусор.

По всей видимости, вопрос как-то связан с Blittable and Non-Blittable Types и Default Marshaling for Arrays, но понять о чем тут написано я не в силах.

Нужен ваш совет.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог