У меня есть следующая функция:
bool __declspec(dllexport) COMS_HL7QueryAnswer(char *szZone,char* szMessage, char** o_szAnswer)
И я вызываю его из C # так:
public static extern bool COMS_HL7QueryAnswer(string szZone,string szMessage, out StringBuilder szAnswer);
Это работает в Windows 2003, но я получаю исключения нарушения прав доступа в W2008 и похоже, что они происходят на границе PInvoke. Любая помощь будет отличной.
Спасибо.
РЕДАКТИРОВАТЬ: Похоже, AccessViolationException происходит на границе PInvoke, потому что:
- У меня нет стека вызовов, кроме функции C #.
- Когда я иду с отладчиком, я могу F10 до последней функции C ++, и когда я выхожу из}, тогда я иду к обработчику исключений C #.