我可以从64位C# Winforms应用程序中调用MAPI32.DLL > MAPISendMail吗?

问题描述 投票:0回答:1

我已经将一个 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程序中做这个是安全的吗? 还是我只是运气好,它没有崩溃?

c# winforms 64-bit mapi
1个回答
1
投票

是的,它是安全的。将使用适当的库,并从适当的系统目录中加载(mapi32.dll)。

  • x64或x86本机
%windir%\system32\mapi32.dll
  • x86的WoW模式
%windir%\syswow64\mapi32.dll

你可以在 在32位和64位平台上构建MAPI应用程序。 文章:

© www.soinside.com 2019 - 2024. All rights reserved.