Могу ли я использовать C # DLL с небезопасным кодом в VB.NET? - PullRequest
2 голосов
/ 21 февраля 2010

Существует класс FastBitmap для C #, который позволяет вам получать доступ и изменять информацию о пикселях растрового изображения. Я уже использовал его в каком-то проекте на C #, но теперь он мне нужен в VB.NET. Проблема в том, что этот класс использует небезопасный код, который не поддерживается в VB.NET.

Вопрос в том. Могу ли я скомпилировать класс FastBitmap в dll и использовать его в VB.NET?

[EDIT] Или есть какая-то библиотека, которую можно использовать для изменения пиксельных данных в VB.NET?

Ответы [ 2 ]

6 голосов
/ 21 февраля 2010

Да, вы можете сделать это.

Если класс не предоставляет каких-либо небезопасных функций в своем общедоступном интерфейсе (например, метод, принимающий указатель), то у вас не должно возникнуть проблем с его использованием из VB.NET. Общеязыковая среда выполнения (CLR) поддерживает небезопасный код, поэтому C # не выполняет никаких действий magic при написании небезопасных программ.

При желании вы также можете переопределить класс FastBitmap в VB.NET, используя класс Маршала , который дает вам быстрый доступ к памяти, используя стандартный интерфейс .NET, доступный из VB.NET как Что ж. Но возможность смешивать несколько языков в одном проекте - это большое преимущество .NET.

2 голосов
/ 21 февраля 2010

Быстрый ответ, да . Кстати, вы пробовали это?

...