У меня есть проект C ++ с функциями:
_API void __stdcall InstallMailHandler(MailHdlPtrType Hdl)
{ ... }
_API void __stdcall UninstallMailHandler(MailHdlPtrType Hdl)
{ ... }
typedef void (STDCALL *MailHdlPtrType)(unsigned char instNo, bla bla bla);
И у меня в C #:
public static extern void InstallMailHandler(MailHdlPtrType Hdl);
public static extern void UninstallMailHandler(MailHdlPtrType Hdl);
public delegate void MailHdlPtrType(byte instno, bla bla bla);
Но когда я вызываю InstallMailHandler и UninstallMailHandler из C # с той же функцией в аргументах,это приводит к различным адресам в C ++, поэтому он не может удалить ранее установленный почтовый обработчик.
Можно ли как-то гарантировать, что оба вызова приведут к одному и тому же адресу функции, или, возможно, установить адрес явно?