首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

LNK2019链接异常

2013-11-08 
LNK2019链接错误// MVC_Email.h : MVC_Email DLL 的主头文件//#pragma once#ifndef __AFXWIN_H__#error

LNK2019链接错误
// 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()函数

求指点谢谢 c++ lib链接库
[解决办法]
类CWinApp里面好像没有AddFilePath()和sendEmail()这两成员函数吧

theApp.AddFilePath("test.txt");
theApp.SendMail(mailInfo);

改成下面的试试(注意添加相关的头文件和dll)
AddFilePath("test.txt");
SendMail(mailInfo);
[解决办法]
应该是你声明了却没定义这两个函数吧,再仔细检查下。要么就是定义的和声明的函数不同。
[解决办法]

引用:
函数定义了,而且头文件是直接在建立动态链接库的项目中拷贝过来的,应该不会出错,写成了库文件,theApp是用CMVC_EmailApp来定义的


那你引导定义这两个函数的库文件是否成功了呢?
[解决办法]
连接器错误,一般是编译没问题,

生成exe时候,连接实体函数找不到。或者格式不统一。

http://msdn.microsoft.com/zh-cn/library/799kze2z

热点排行