mfc-新手MFC求助,关于error LNK2019的问题。

问题描述

新手MFC求助,关于error LNK2019的问题。

1>MFCApplication2Dlg.obj : error LNK2019: 无法解析的外部符号 "public: static long __stdcall CMFCApplication2Dlg::JournalRecordProc(int,unsigned int,long)" (?JournalRecordProc@CMFCApplication2Dlg@@SGJHIJ@Z),该符号在函数 "public: void __thiscall CMFCApplication2Dlg::OnBnClickedButton3(void)" (?OnBnClickedButton3@CMFCApplication2Dlg@@QAEXXZ) 中被引用
1>MFCApplication2Dlg.obj : error LNK2019: 无法解析的外部符号 "public: static long __stdcall CMFCApplication2Dlg::JounralPlaybackProc(int,unsigned int,long)" (?JounralPlaybackProc@CMFCApplication2Dlg@@SGJHIJ@Z),该符号在函数 "public: void __thiscall CMFCApplication2Dlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CMFCApplication2Dlg@@QAEXXZ) 中被引用
1>E:PJBMFCApplication2DebugMFCApplication2.exe : fatal error LNK1120: 2 个无法解析的外部命令
void CMFCApplication2Dlg::OnBnClickedButton3()
{
hHook =SetWindowsHookEx(
WH_JOURNALRECORD,
(HOOKPROC)JournalRecordProc,
AfxGetApp()->m_hInstance,
0
);

// TODO: 在此添加控件通知处理程序代码

}
void CMFCApplication2Dlg::OnBnClickedButton1()
{
hHook=SetWindowsHookEx(
WH_JOURNALPLAYBACK,
(HOOKPROC)JounralPlaybackProc,
AfxGetApp()->m_hInstance,
0
);
// TODO: 在此添加控件通知处理程序代码
}
static LRESULT CALLBACK JournalRecordProc(int nCode,WPARAM wparam,LPARAM lparam)
{
if (nCode<0)
return CallNextHookEx(NULL,nCode,wparam,lparam);
EVENTMSG*pmsg=(EVENTMSG*)lparam;
switch(nCode)
{
case HC_ACTION:
{EVENTMSG * pEventMsg =new EVENTMSG;
memcpy(pEventMsg,pmsg,sizeof(EVENTMSG));
EventMsgList.AddTail(pEventMsg);}
break;
case HC_SYSMODALOFF:
break;
case HC_SYSMODALON:
break;

}

}
static LRESULT CALLBACK JournalPlaybackProc(int nCode,WPARAM wparam,LPARAM lparam)
{
static unsigned i=0;
static BOOL bFlag =TRUE;
EVENTMSG*pMsg;
POSITION pos;
DWORD PreTime,NowTime;
switch (nCode)
{
case HC_SKIP:
bFlag =TRUE;
i++;
break;
case HC_GETNEXT:
if(i>=EventMsgList.GetCount()-2)
{
i=0;
UnhookWindowsHookEx(hHook);
AfxMessageBox(_T("回放完毕!"));
}
pos=EventMsgList.FindIndex(i);
pMsg=EventMsgList.GetAt(pos);
memcpy((LPEVENTMSG)lparam,pMsg,sizeof(EVENTMSG));
if((i)!=0 && bFlag==TRUE)
{
bFlag=FALSE;
NowTime=pMsg->time;
pos=EventMsgList.FindIndex(i-1);
pMsg=EventMsgList.GetAt(pos);
PreTime=pMsg->time;
return NowTime-PreTime;
}
else return 0;
break;
default:
return CallNextHookEx(NULL,nCode,wparam,lparam);
}
return 0;

}
请问下哪有错啊,很急

解决方案

cpp中定义错了修改下试试,把static删了也
LRESULT CALLBACK CMFCApplication2Dlg::JournalRecordProc(int nCode,WPARAM wparam,LPARAM lparam)
LRESULT CALLBACK CMFCApplication2Dlg::JournalPlaybackProc(int nCode,WPARAM wparam,LPARAM lparam)

解决方案二:

调用在定义前,这种情况需要先声明函数

解决方案三:

在代码前面加上: static LRESULT CALLBACK JournalRecordProc(int nCode,WPARAM wparam,LPARAM lparam);
static LRESULT CALLBACK JournalPlaybackProc(int nCode,WPARAM wparam,LPARAM lparam);

时间: 2024-09-12 15:57:18

mfc-新手MFC求助,关于error LNK2019的问题。的相关文章

mfc新手在线等帮帮忙呀

问题描述 mfc新手在线等帮帮忙呀 m_fNumber1 = atof((const char *)m_str.GetBuffer(m_str.GetLength())); vs2012 这句话有问题么,为什么m_fnumber1不能取到值 解决方案 m_fNumber1 是float类型的吗?是想吧CString转成float类型的数值吗 解决方案二: CString str="1.2"; float f; f=atof(str); 解决方案三: 不用加const char* 强制转

c++-VS2013,C++,error LNK2019和LNK1120

问题描述 VS2013,C++,error LNK2019和LNK1120 output:1>------ Build started: Project: chapter5 使用序列式容器并分析字符串, Configuration: Debug Win32 ------ 1> Source.cpp 1>Source.obj : error LNK2019: unresolved external symbol "class std::vector,class std::allo

lnk1112- C++与MATLAB混合编程问题, error LNK2019与fatal error LNK1112

问题描述 C++与MATLAB混合编程问题, error LNK2019与fatal error LNK1112 为什么最简单的例子都没有办法实现,一直提示无法解析的外部符号.感觉需要的环境应该配置对了啊,求助! 具体问题请移步到论坛:http://bbs.csdn.net/topics/390921793

ACE_STUDY ACE应用程序链接错误 error LNK2019 的解决办法

ACE应用程序链接错误      error LNK2019 的解决办法  注意:是Stone Jiang写的,我找到的文章.感谢他的文章! 读者水平:初级 http://blog.csdn.net/FocusOnACE/archive/2006/07/09/896332.aspx摘要:文本简要指出如何正确编译和链接ACE应用程序. 对于新手来说,ACE开发环境,会是一团谜团,如何正确配置开发者机器,快速体验ACE, 就是本系列文章的目的.本文仅解决如何解决LNK2019错误 环境:      

lnk1120-vs2010运行程序报错:error LNK2019: 无法解析的外部符号

问题描述 vs2010运行程序报错:error LNK2019: 无法解析的外部符号 如题,我在vs2010环境下做C++练习题时出现该错误.程序代码如下: //array.h#ifndef ARRAY_H#define ARRAY_Htemplate<typename T>class Array{public: Array(int n);//数组首地址不用指定,待会分配 Array(Array &a); ~Array(); T getAt(int i);//返回第i个数组元素 voi

c#-新手来求助,关于C#服务器端与客户端通讯的问题

问题描述 新手来求助,关于C#服务器端与客户端通讯的问题 string strReceive = System.Text.Encoding.Default.GetString(ReceiveBuff, 0, 256);//strReceive是接收到的客户端发的消息内容 ?char[] ch1 = strReceive.ToCharArray(0, 1);//取这条消息的第一个字符 ?if (ch1[0]!='d')//如果第一个字符为d { ? (补充说明:客户端发的d开头的消息的格式,就是d

VS2010 error LNK2019: 无法解析的外部符号

问题描述 VS2010 error LNK2019: 无法解析的外部符号 程序如下: #include #include #include #include #include #include #include #include #include #include "cuda_runtime.h" #include "device_launch_parameters.h" #include "cuda_runtime.h" #include #i

error LNK2019: 无法解析的外部符号 _deflate

我的环境为: Win764 + VS2005 + zlib1.2.8 zlib1.2.8我使用VS2010来编译. ------------------------------------------------------------------------------------------------- 我导入zlib库的代码如下: #include "zlib128/zlib.h"// #pragma comment(lib, "zlib128/zlibwapi.li

c++-C++ error LNK2019: 无法解析的外部符号

问题描述 C++ error LNK2019: 无法解析的外部符号 在看某项目的源码时 发现其使用了第三方的头文件,之后我就去官网下载了. 下载来是压缩文件 里面有一些.c .h之类的文件,我把这些文件都包含在源码中. 然后运行就出现了: error LNK2019: 无法解析的外部符号 _jpeg_std_error,该符号在函数 "unsigned int __cdecl rescaleJPEG(unsigned char *,unsigned int,unsigned char * *,i