Эй, ребята, я создаю DLL на C ++ и хочу, чтобы ее можно было использовать в приложениях .NET (как на C #, так и на VB.NET).Я искал в Интернете советы, и то, что я нашел до сих пор, подсказывает:
- Объявление моих функций C ++ как внешних C и использование __stdcall
- Использование основных типов C для параметрови возвращать типы вместо контейнеров STL (например, char * вместо std :: string)
- Использование указателей для входных параметров, которые необходимо изменить вместо ссылок
Предполагается, что typedef unsigned charbyte;
Это функция сжатия.Ожидаемые входные данные - это входные данные (переданные как byte *), размер входных данных (переданные как int), указатель на переменную, в которой будет храниться сжатый размер (переданный как int *), и строка вкакие сообщения об ошибках могут быть сохранены при необходимости (передаются как char *).Функция malloc является выходным буфером, записывает выходные данные и возвращает байт *, и ожидается, что вызывающий код освободит буфер, когда он завершит его использование.В случае возникновения ошибки сообщение об ошибке помещается в строку ошибки strcpy'd и возвращается указатель NULL.
Все ли в порядке с моей текущей настройкой или мне нужно внести некоторые другие изменения, чтобы она былавызывается из .NET?