LoadLibrary() - 搜索顺序

时间:2018-03-22 18:39:54

标签: c++ windows mfc mapi loadlibrary

所以我有这样的代码

m_hInstMail = ::LoadLibraryA("MAPI32.DLL"); 

ASSERT(m_hInstMail != (HINSTANCE) NULL);

//  Now get the pointer to the send function
(FARPROC&) m_lpfnSendMail = GetProcAddress(m_hInstMail, "MAPISendMail");
CWnd* pParentWnd = CWnd::GetSafeOwner(NULL, &hWndTop);
int nError = m_lpfnSendMail((ULONG)0, (ULONG)(pParentWnd->GetSafeHwnd()), &m_message, MAPI_LOGON_UI | MAPI_DIALOG | flags, (ULONG)0);

系统文件" MAPI32.DLL"存在于System32和SysWOW64文件夹中。 尽管名称相同,但这两个文件都有不同的大小。

如何知道LoadLibraryA()调用哪一个?

关于真正问题的背景 - 当我为32位系统编译此代码时,它工作正常但对于64位系统,当使用MAPISendMail()发送消息时,我收到服务器忙消息Outlook弹出组合邮件后大约5秒钟。

enter image description here

编辑: 1)问题类似于用户提到的问题

Link to MSDN

2)我使用了调用MapiSendMailW()的unicode版本,但问题仍然存在。

3)扩展代码以包含如何调用MapiSendMail的语法。

0 个答案:

没有答案