【发布时间】:2016-09-04 07:17:30
【问题描述】:
我正在编写一个程序,该程序将预先填写要发送数据的电子邮件。但是,我想在实际发送之前向用户显示电子邮件。 C++ 的 MailItem 类中包含的显示方法需要一个 VARIANT 变量。我对 C++ 比较陌生,所以我以前从未处理过 VARIANT 变量。根据我的研究,我发现 this 解释了 Variant 是什么。
当我声明一个变体并将其用于参数时,我只会收到错误“变量类型错误”。我使用的代码如下。我知道那行不通,但老实说,我不知道用什么来填充变体以使其工作。 The site for the MailItem class 表示不需要变体变量,但没有它我的代码将无法编译。该站点似乎是针对 Visual Basic 的,它不能帮助我使用 C++ 工作。
VARIANT modal;
olMailItem.Display(modal);
你们有没有这方面的经验,可以指出正确的方向?我很感激。
【问题讨论】:
-
这不是 C++ 代码,它是 VBA。 VARIANT 也是 VBA 类型。
-
请仔细阅读文档(例如msdn.microsoft.com/en-us/library/windows/desktop/…) - 它不是那么简单。
VARIANT需要通过VariantInit初始化,或者你应该使用variant_t或CComVariant包装器来处理这个问题。 -
Zdeslav Vojokiv,那个 variant_t 包装器做到了!很抱歉问这么简单的问题,但你们太棒了!
-
当您标记此 MFC 时,您可能希望使用类
COleVariant。这个类提供了几个重载的构造函数来构造不同类型的变体,比如字符串或整数。 -
如果不了解 C++ 或 Windows API,就无法同时掌握 MFC 和 COM。祝你好运。除非你打下坚实的基础(Windows API、COM、C++),否则你会浪费很多时间。