我已经将一个 32 位 WinForms 应用程序转换为 64 位,但不知道该如何调用 MAPI32.DLL > MAPISendMail? 我不认为你可以直接从64位的dll中调用32位的dll,但我想看看会发生什么。 奇怪的是,它似乎可以工作,但我不知道它是否安全。
DLL的调用方式如下。
[DllImport("MAPI32.DLL")]
public static extern int MAPISendMail(IntPtr session, IntPtr hwnd, MapiMessage message, int flg, int rsv);
//...fill in message
// Call the API
int error = Mapi32.MAPISendMail(IntPtr.Zero, IntPtr.Zero, message, Mapi32.MAPI_DIALOG, 0);
从64位的WinForms程序中做这个是安全的吗? 还是我只是运气好,它没有崩溃?
是的,它是安全的。将使用适当的库,并从适当的系统目录中加载(mapi32.dll)。
%windir%\system32\mapi32.dll
%windir%\syswow64\mapi32.dll
你可以在 在32位和64位平台上构建MAPI应用程序。 文章: