LNK2019链接错误

hzg392622955 2013-11-04 03:41:10
// MVC_Email.h : MVC_Email DLL 的主头文件
//

#pragma once

#ifndef __AFXWIN_H__
#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
#endif

#include "resource.h" // 主符号


// CMVC_EmailApp
// 有关此类实现的信息,请参阅 MVC_Email.cpp
//

struct SMailInfo //邮件信息
{
char* m_pcUserName;//用户登录邮箱的名称
char* m_pcUserPassWord;//用户登录邮箱的密码
char* m_pcSenderName;//用户发送时显示的名称
char* m_pcSender;//发送者的邮箱地址
char* m_pcReceiver;//接收者的邮箱地址
char* m_pcTitle;//邮箱标题
char* m_pcBody;//邮件文本正文
char* m_pcIPAddr;//服务器的IP
char* m_pcIPName;//服务器的名称(IP与名称二选一,优先取名称)
SMailInfo(){memset(this,0,sizeof(SMailInfo));}
};

class CMVC_EmailApp : public CWinApp
{
public:
CMVC_EmailApp();

// 重写
public:
virtual BOOL InitInstance();

DECLARE_MESSAGE_MAP()

public:
bool SendMail(SMailInfo &smailInfo);//发送邮件,需要在发送的时候初始化邮件信息
void AddFilePath(char * pcFilePath);//添加附件的决定路径到附件列表中
void DeleteFilePath(char* pcFilePath);//删除附件路径,如果有的话
void DeleteAllPath(void);//删除全部附件的路径

protected:
void GetFileName(char* fileName,char* filePath);//从附件的路径中获取文件名称
void Char2Base64(unsigned char* pBuff64, unsigned char* pSrcBuff,int iLen);//把char类型转换成Base64类型
bool CReateSocket(SOCKET &sock);//建立socket连接
bool Logon(SOCKET &sock);//登录邮箱,主要进行发邮件前的准备工作
int GetFileData(char* FilePath);//由文件路径获取附件内容

bool SendHead(SOCKET &sock);//发送邮件头
bool SendTextBody(SOCKET &sock);//发送邮件文本正文
bool SendFileBody(SOCKET &sock);//发送邮件附件
bool SendEnd(SOCKET &sock);//发送邮件结尾


protected:
CList<char*,char*> m_pcFilePathList;//记录附件路径

char m_cSendBuff[4096];//发送缓冲区
char m_cReceiveBuff[1024];
char* m_pcFileBuff;//指向附件内容
SMailInfo m_sMailInfo;
};



// TestEMail.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "TestEMail.h"
#include "MVC_Email.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// 唯一的应用程序对象

CWinApp theApp;

using namespace std;



void TestSendMail()
{
SMailInfo mailInfo;
mailInfo.m_pcUserName = "392622955@qq.com"; //"你的邮箱帐号";
mailInfo.m_pcUserPassWord = "你的邮箱登录密码"; // "密码";
mailInfo.m_pcSenderName = "392622955@qq.com"; //发送邮件者的名称
mailInfo.m_pcSender = "392622955@qq.com"; //发送者的邮箱地址

mailInfo.m_pcReceiver = "392622955@qq.com"; //接收者的邮箱地址
mailInfo.m_pcTitle = "测试邮件"; //邮箱标题
mailInfo.m_pcBody = "请速回复,测试邮件发送"; //邮件文本正文
mailInfo.m_pcIPAddr = ""; //服务器的IP可以留空
mailInfo.m_pcIPName = "smtp.qq.com" ; //服务器的名称(IP与名称二选一,优先取名称)


//CSendMail smtpMail;
//smtpMail.AddFilePath("test.txt"); //附件1 可给出完整的附件路径
//smtpMail.AddFilePath("atta2.txt"); //附件2
//smtpMail.SendMail(mailInfo);
CMVC_EmailApp theApp;
theApp.AddFilePath("test.txt");
theApp.SendMail(mailInfo);
}



int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;

// 初始化 MFC 并在失败时显示错误
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: 更改错误代码以符合您的需要
_tprintf(_T("错误: MFC 初始化失败\n"));
nRetCode = 1;
}
else
{
// TODO: 在此处为应用程序的行为编写代码。
}

TestSendMail();
return nRetCode;
}



出现2019链接错误无法解析AddFilePath()和sendEmail()函数

求指点谢谢
...全文
102 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
5t4rk 2013-11-04
  • 打赏
  • 举报
回复
连接器错误,一般是编译没问题, 生成exe时候,连接实体函数找不到。或者格式不统一。 http://msdn.microsoft.com/zh-cn/library/799kze2z
max_min_ 2013-11-04
  • 打赏
  • 举报
回复
引用 3 楼 hzg392622955 的回复:
函数定义了,而且头文件是直接在建立动态链接库的项目中拷贝过来的,应该不会出错,写成了库文件,theApp是用CMVC_EmailApp来定义的
那你引导定义这两个函数的库文件是否成功了呢?
hzg392622955 2013-11-04
  • 打赏
  • 举报
回复
函数定义了,而且头文件是直接在建立动态链接库的项目中拷贝过来的,应该不会出错,写成了库文件,theApp是用CMVC_EmailApp来定义的
Adol1111 2013-11-04
  • 打赏
  • 举报
回复
应该是你声明了却没定义这两个函数吧,再仔细检查下。要么就是定义的和声明的函数不同。
_静以修身 2013-11-04
  • 打赏
  • 举报
回复
类CWinApp里面好像没有AddFilePath()和sendEmail()这两成员函数吧 theApp.AddFilePath("test.txt"); theApp.SendMail(mailInfo); 改成下面的试试(注意添加相关的头文件和dll) AddFilePath("test.txt"); SendMail(mailInfo);

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧