gpt4 book ai didi

c++ - 未处理的异常 : _com_error at memory location 0x0040f4ac

转载 作者:行者123 更新时间:2023-11-30 04:08:35 25 4
gpt4 key购买 nike

我正在使用外部库 EASendMail使用 gmail 作为 SMTP 服务器发送电子邮件。

导致错误的行

oSmtp->LicenseCode = _T("TryIt");

link安装外部库。

#include "stdafx.h"
#include <iostream>
#include "easendmailobj.tlh"
#include <string>

using namespace EASendMailObjLib;
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{

string Lrecipient_email = "foobar@hotmail.com";

::CoInitialize( NULL );

IMailPtr oSmtp = NULL;
oSmtp.CreateInstance( "EASendMailObj.Mail");
oSmtp->LicenseCode = _T("TryIt"); //error is here

// Set your gmail email address
oSmtp->FromAddr = _T(" mygmailacc@gmail.com");

// Add recipient email address
oSmtp->AddRecipientEx( _T(recipient_email.c_str()), 0);

// Set email subject
oSmtp->Subject = _T("Payment of Desposit Required");

// Set email body
oSmtp->BodyText = _T("Dear Customer , Please pay your deposit now !!!");

// Gmail SMTP server address
oSmtp->ServerAddr = _T("smtp.gmail.com");

// If you want to use direct SSL 465 port,
// Please add this line, otherwise TLS will be used.
// oSmtp->ServerPort = 465;

// detect SSL/TLS automatically
oSmtp->SSL_init();

// Gmail user authentication should use your
// Gmail email address as the user name.
// For example: your email is "gmailid@gmail.com", then the user should be "gmailid@gmail.com"
oSmtp->UserName = _T("username");
oSmtp->Password = _T("password");

_tprintf(_T("Start to send email via gmail account ...\r\n" ));

if( oSmtp->SendMail() == 0 )
{
_tprintf( _T("email was sent successfully!\r\n"));
}
else
{
_tprintf( _T("failed to send email with the following error: %s\r\n"),
(const TCHAR*)oSmtp->GetLastErrDescription());
}

if( oSmtp != NULL )
oSmtp.Release();

return 0;
}

我不知道为什么会出现以下错误:

Unhandled exception at 0x7558c41f in SendEmail.exe: Microsoft C++ exception: _com_error at memory location 0x0040f4ac..

MS Studio 调试器将此显示为文件中的错误源:easendmailobj.tli

错误 1

 Interface* operator->() const 
{
if (m_pInterface == NULL)
{
_com_issue_error(E_POINTER);
}

return m_pInterface;
}

错误 2

inline void IMail::PutLicenseCode ( _bstr_t pVal ) {
HRESULT _hr = put_LicenseCode(pVal);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
}

最佳答案

oSmtp->LicenseCode = _T("TryIt");当您的试用版到期时会出现此错误。

“TryIt”是评估许可证代码,只能用于演示目的。许可证过期 1 个月后,它会引发 COM 异常。

您可以进一步检查这些链接

https://www.emailarchitect.net/easendmail/sdk/html/LicenseCode.htm https://www.emailarchitect.net/easendmail/sdk/html/license.htm

关于c++ - 未处理的异常 : _com_error at memory location 0x0040f4ac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21730922/

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