gpt4 book ai didi

c++ - MAPI 可以信任不可变字符串吗?

转载 作者:太空狗 更新时间:2023-10-29 23:06:15 25 4
gpt4 key购买 nike

我希望我的程序通过传递 MapiMessage 来在用户最喜欢的电子邮件客户端中撰写外发电子邮件。至 MAPISendMail .电子邮件的元素(例如主题)可作为不可变字符串(例如 const char*)提供给我的程序。使用 const_cast< LPSTR > 是否被认为是“安全”的?将这些字符串的地址直接传递给 MAPI 实现?

我推测 LPSTR之所以在 MAPI 中使用,只是因为该 API 非常古老,并且多年前没有广泛使用不可变字符串,或者有一些神秘的原因需要可变字符串。另一方面,也许字符串需要可变是有充分理由的,但我只是看不到。不幸的是,我无法找到很多信息来支持这一点,无论是哪种方式。

最佳答案

我不认为这是安全的。来自 MAPISEndMail 文档“如果没有信息丢失,则可以按原样发送消息,或者可以提示用户验证信息并在必要时更改值。MAPISendMailW 和 MAPISendMail 都与 MAPISendDocuments 函数不同,因为它们在消息生成方面具有更大的灵 active 。消息正文某些客户端应用程序可以截断太长或包含回车、换行或换页的主题行。”

这对我来说表明 MapiMessage 的成员可能会被更改。此外,MAPI 不可能比包含大量 LPCSTR 的 Win32 SDK 更古老。

在调用 MAPISendMail 之前,我会分配新的缓冲区并将您的 const 字符串复制到那里

关于c++ - MAPI 可以信任不可变字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16405735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com