一个比较简单的程序 但是就是编译不通过 请各位高手指教

KevinWon 2005-05-06 02:23:57
程序是基于对话框的MFC win32项目
头文件内容如下:
// InputMethodDemoDlg.h : 头文件
//

#pragma once
#include "afxwin.h"


// CInputMethodDemoDlg 对话框
class CInputMethodDemoDlg : public CDialog
{
// 构造
public:
CInputMethodDemoDlg(CWnd* pParent = NULL); // 标准构造函数

// 对话框数据
enum { IDD = IDD_INPUTMETHODDEMO_DIALOG };

protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持


// 实现
protected:
HICON m_hIcon;

// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
CEdit m_cEditMain;
CEdit m_cEditSelect;
BOOL CInputMethodDemoDlg::PreTranslateMessage(MSG * pMsg);
CEdit m_cEditInput;
CString m_strEditMain;
CString m_strEditSelect;
CString m_strEditInput;
struct CtrContent;
struct InContent;
int SearchWD(CString Content);
};

cpp文件内容如下:
// InputMethodDemoDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "InputMethodDemo.h"
#include "InputMethodDemoDlg.h"
#include "iostream"
using namespace std;

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CInputMethodDemoDlg 对话框
struct CtrContent
{
CString name;
CString value;
};
CtrContent m_sCtrList[20];
struct InContent
{
CString letter;
int Begin,End;
};
InContent m_Index[401];
CString m_strCode[6696];

CInputMethodDemoDlg::CInputMethodDemoDlg(CWnd* pParent /*=NULL*/)
: CDialog(CInputMethodDemoDlg::IDD, pParent)
, m_strEditMain(_T(""))
, m_strEditSelect(_T(""))
, m_strEditInput(_T(""))
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CInputMethodDemoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT1, m_cEditMain);
DDX_Control(pDX, IDC_EDIT2, m_cEditSelect);
DDX_Control(pDX, IDC_EDIT3, m_cEditInput);
DDX_Text(pDX, IDC_EDIT1, m_strEditMain);
DDX_Text(pDX, IDC_EDIT2, m_strEditSelect);
DDX_Text(pDX, IDC_EDIT3, m_strEditInput);
}

BEGIN_MESSAGE_MAP(CInputMethodDemoDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()


// CInputMethodDemoDlg 消息处理程序

BOOL CInputMethodDemoDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标

// TODO: 在此添加额外的初始化代码
CString strBuf;
CFile m_CFile;
m_CFile.Open("ControlList.txt",CFile::modeRead);
CArchive Ct(& m_CFile,CArchive::load);
int i = 1;
while(Ct.ReadString(strBuf))
{
m_sCtrList[i].name = strBuf;
Ct.ReadString(strBuf);
m_sCtrList[i].value = strBuf;
i++;
}
Ct.Close();
m_CFile.Close();
m_CFile.Open("Index.txt",CFile::modeRead);
CArchive In(& m_CFile,CArchive::load);
i=1;
while(In.ReadString(strBuf))
{
m_Index[i].letter = strBuf;
In.ReadString(strBuf);
m_Index[i].Begin = atoi(strBuf);
In.ReadString(strBuf);
m_Index[i].End = atoi(strBuf);
}
In.Close();
m_CFile.Close();
m_CFile.Open("区位码.txt",CFile::modeRead);
CArchive Co(& m_CFile,CArchive::load);
i=1;
while(Co.ReadString(strBuf))
{
m_strCode[i] = strBuf;
i++;
}
return TRUE; // 除非设置了控件的焦点,否则返回 TRUE
}

// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。

void CInputMethodDemoDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文

SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

// 使图标在工作矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}

//当用户拖动最小化窗口时系统调用此函数取得光标显示。
HCURSOR CInputMethodDemoDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}

int SearchWD(CString Content)
{
int pos = 1;
while(m_Index[pos].letter!=Content)
{
pos++;
}
if(pos>401)
{
return 0;
}
else
{
return (pos);
}
}

BOOL CInputMethodDemoDlg::PreTranslateMessage(MSG *pMsg)
{
if(pMsg->message==WM_KEYUP)
{
UpdateData(1);
CString strBuf;
if((__toascii(pMsg->wParam)>64)&&(__toascii(pMsg->wParam)<91))
{
int pos ;
pos= SearchWD(m_strEditInput);
}
}
return(CDialog::PreTranslateMessage(pMsg));
}


如果不调用SearchWD函数程序可以通过编译,否则编译时说:
1、
InputMethodDemo error LNK2019: 无法解析的外部符号 "public: int __thiscall CInputMethodDemoDlg::SearchWD(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > >)" (?SearchWD@CInputMethodDemoDlg@@QAEHV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z) ,该符号在函数 "public: virtual int __thiscall CInputMethodDemoDlg::PreTranslateMessage(struct tagMSG *)" (?PreTranslateMessage@CInputMethodDemoDlg@@UAEHPAUtagMSG@@@Z) 中被引用

2、
InputMethodDemo fatal error LNK1120: 1 个无法解析的外部命令

到底出了什么问题呢?请各位高手告诉在下解决方法 谢谢

...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
KevinWon 2005-05-06
  • 打赏
  • 举报
回复
还有:basic_string和string有什么区别 怎么转换?
KevinWon 2005-05-06
  • 打赏
  • 举报
回复
string的解决了 用substr 但是CString 的还没找到 各位请帮忙
KevinWon 2005-05-06
  • 打赏
  • 举报
回复
想问一下
1、如果要返回一个string串的某个位置起的字串有什么函数可以用呢?
2、如果是CString呢?又有什么函数可以用
3、String跟string到底有什么不同
谢谢
xiaomin1300 2005-05-06
  • 打赏
  • 举报
回复
int SearchWD(CString Content)
-----------------------
int CInputMethodDemoDlg::SearchWD(CString Content)
KevinWon 2005-05-06
  • 打赏
  • 举报
回复
汗。。。。。自己解决了 留个帖继续问问题好了 呵呵
程序90%代码为作者原创 其余代码均为网络收集使用 版权归原作者所有 程序主要开发语言采用c# 其余的语言也有采用 软件没什么技术含量 本扫描器没有启发引擎 仅仅只有简单的未知文件分析模块 可以有一定的未知病毒判断能力 因为考虑到作者时间和精力等问题 本程序只采用了文本数据库作为病毒库和可信库 病毒库文件夹为bdk 可信库文件夹为kxk 欢迎有志之士继续在这基础上优化进行开发(前提是必须遵守gpl开源协议) 软件纯属原创 为本人自主作品 代码写的很垃圾 各位高手不喜勿喷 仅为思路学习 帮助更多小白学习编程思想 纯属无私奉献 多多指教 作者本人也是半屌子程序一个 本软件有许多我已知的bug 没修复的原因是时间真的十分有限 都是小bug 还大牛们改改在把源码发出来让大家学习一下 开发本程序的初衷就是开源和学习 至于扫描效果和修复效果说实话还是比较差的 因为那个未知文件分析模块的dll我也没怎么写 至于那些dll都是简单的代码实现 考虑到某些国产“山寨”的产品 盗用别人的成果所以我就不发源码了 如果有开发软件的作者赏脸愿意合作的话我还是愿意改进的 软件采用c#(70%) c/c++(20%)易语言(10%)进行开发。。。。编译环境:vs2013 win8/64位 因为底层技术学的不咋的 病毒就是简单的文件删除和修复下注册表 没什么技术含量 至于我开发的自主云。。。 那个纯属就是是tcp协议的网络通讯然后在服务器上查找数据库 也没多大的技术含量 服务器是我买的vps 还是花了我不少钱的 服务器在北京 速度应该不会慢 预计半年内服务器的云不会消失 用本引擎diy杀软的朋友不必担心 如果需要我这菜鸟的技术支持等联系我QQ1620493525(加的时候注明一下谢谢了!) 如果有什么好玩的c语言/c#语言的项目拉上我打打酱油我也是相当开心的(易语言的项目就算了。。。) 本软件是我创建的第一个开源项目 转载注明作者的联系方式以及gpl开源协议 大牛们不喜勿喷。。。。仅为娱乐学习 重在学习 让大家都可以学到基础的编程知识和杀毒知识何乐而不为呢? 介于本人技术实在不怎么样。。。最近在开发一款脚本语言(用纯c) 这款脚本语言主要是为了解决windows方面的一些问题(特点:简单 高效 ) 可以用来迅速编写病毒专杀等工具(当然是我自己发明的语法。。。)是全英文的 但是肯定会比易语言简单,直接 直接进行c解释器效率应该不会很低 因为是低级的小脚本语言所以大家别见笑。。。如果有可以合作的志同道合的朋友可以联系我一起合作。。。。 另外本扫描器估计禁不起评测 查杀率略低了。。也没有启发 所以大家学习参考就行了。。。。 如果有哪个软件赏脸采用本引擎务必写上本人的版权(QQ等等

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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