Передача буфера для recv () и send () из C # в C ++ - PullRequest
0 голосов
/ 06 марта 2012

У меня есть оболочка C ++ / CLI для класса C ++, для которой я создаю несколько экземпляров в приложении C #, и это прекрасно работает, за исключением функций в коде C ++, которые берут буфер из вызывающей функции и заполняют егонезависимо от того, получен ли вызов recv, аналогичным образом некоторые функции принимают пакет для отправки в качестве параметра.

В коде C ++ есть несколько структур, которые определяют все структуры пакетов, указатели на которые берутся в качестве параметров, и у меня есть эквивалентные структуры C #, которые упакованы одинаковым образом, чтобы они выглядели одинаково вВ памяти я не знаю, какой тип C ++ / CLI я могу использовать в качестве параметров для функций, которые принимают указатели на структуры C # и могут быть переданы в код C ++.

Спасибо.

1 Ответ

2 голосов
/ 06 марта 2012

Вам не нужен какой-либо особый «тип C ++ / CLI», вам нужен только тип C ++.Если это простой C-подобный struct (без таблиц виртуальных методов или чего-либо подобного), то вы можете попробовать использовать Marshal::StructureToPtr().Если это не так просто, вам, вероятно, нужно скопировать его из поля объекта C # по полю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...