我正在开发一个程序,该程序将打开默认邮件客户端发送带附件的邮件。我在Windows x64 (8.1)
,使用VS2012
,建筑x64
。我认为正确的方法是使用MAPISendMailW
。链接MAPISendMailW?
我加MAPI32.lib
项目设置(Linker->AdditionalDependencies
),和建筑/VERBOSE:LIB
表明,它试图找到MAPI32.lib
MAPISendMailW
。不过我得到
error LNK2019: unresolved external symbol MAPISendMailW referenced in function ...
所以最后我通过
dumpbin.exe -headers MAPI32.lib >> to_some_textfile.txt
,并检查MAPI32.lib的内容 - 哦,很好 - 没有MAPISendMailW
。
我该怎么做才能使用MAPISendMailW
?
谢谢ÿ ou - Win8SDK已安装,但我实际上已经在使用Win10。仍然:它直接从Win8SDK获取标题和导入库。 我也觉得很奇怪,所以我猜我最好的选择是'LoadLibrary/GetProcAddress'。 – St0fF
P.S .:参见http://pastebin.com/kqUfMUB8上的C:\ Program Files文件(x86)\ Windows Kits \ 8.0 \ Include \ um \ MAPI.h' - 行139ff:结构声明;第263ff行:闭包定义,类型定义,函数声明 – St0fF
我已经安装了W8SDK。查看[MSDN文档](https://msdn.microsoft.com/en-us/library/hh802867(v = vs.85).aspx)(在_Requirements_部分中没有提及.lib文件),并且在头文件我注意到函数被定义为一个指针(就像我定义的那样),所以这是用这种方式。因此,为所有定义包含'MAPI.h',然后'MAPI32.lib'不是必需的(至少对于这个func),而是使用动态加载。 – CristiFati