Есть ли разница между использованием [In, Out] и просто использованием ref при передаче параметров с С# на С++?
Я нашел пару разных сообщений SO, а также некоторые материалы из MSDN, которые приближаются к моему вопросу, но не совсем отвечают на него. Я предполагаю, что я могу безопасно использовать ref так же, как я бы использовал [In, Out], и что маршаллер не будет действовать иначе. Меня беспокоит то, что он будет действовать по-другому, и что С++ не будет удовлетворен передачей моей С# -структуры. Я видел обе вещи в базе кода, в которой я работаю...
Вот сообщения, которые я нашел и читал через:
Являются ли атрибуты P/Invoke [In, Out] необязательными для массивов маршалинга? Заставляет меня думать, что я должен использовать [In, Out].
Эти три сообщения заставляют меня думать, что я должен использовать [In, Out], но я могу использовать ref вместо этого, и он будет иметь тот же машинный код. Это заставляет меня думать, что я ошибаюсь, поэтому прошу здесь.