Здравствуйте, SetTom, Вы писали:
ST>Есть dll написанная в MFC, в ней одна функция описана как
ST>extern "C" __declspec(dllexport) const BOOL __cdecl Encrypt(CassetProperty* lpPostData, TCHAR *returnBuffer)
ST>Пытаюсь делать так
[cs]ST> [DllImport("CassetEncrypter.dll", SetLastError = true)]
ST> private static extern bool Encrypt(CassetProperty postData, ref StringBuilder data);
[/cs]
Функция ожидает указатель на структуру, а вы ей передаёте копию экземпляра структуры. Где вы видели пример интеропа StringBuilder через ref?
[DllImport("CassetEncrypter.dll", SetLastError = true)]
private static extern bool Encrypt(ref CassetProperty postData, [Out] StringBuilder data);
Почитайте аккуратно и внимательно
Marshaling Data with Platform Invoke