Re: Обмен данными между MFC DLL и C#
От: _FRED_ Черногория
Дата: 17.11.10 07:48
Оценка:
Здравствуйте, 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
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.