У меня были некоторые проблемы с созданием правильного .dll из c ++ - проекта в мой c # -проект.Я поиграл с c ++ - project-properties и получил файл .dll, который я могу добавить и сослаться в моем c # web-проекте.Я использую Dllimport для вызова функции .dll следующим образом:
[DllImport("Filename.dll", CharSet = CharSet.Ansi)]
static extern void Function1([MarshalAs(UnmanagedType.LPStr)] string src,
int srcLen,
[MarshalAs(UnmanagedType.LPWStr)] StringBuilder dst,
int dstLen)
Заголовок функции c ++:
__declspec(dllimport) void Function1(unsigned char *src,
unsigned long srclen,
unsigned char *dst,
unsigned long dstlen);
Я вызываю Function1 в c # с помощью этого:
string strSrc = "Something";
StringBuilder strDest = new StringBuilder(kryptlen-1);
int l = strSrc.Length();
Function1(strSrc, l, strDest, l);
Никаких исключений или ошибок не происходит, хотя я не получаю ожидаемый результат.Функция представляет собой метод расшифровки, который принимает зашифрованную строку (src) и возвращает расшифрованную версию этого (dst).
Это способ, которым я сгенерировал файл .dll, или это неправильный способ, которым я вызываюфункционировать?У меня заканчиваются идеи, которые я пробовал в большинстве комбинаций.
Спасибо за совет!