VC++菜鸟关于一段代码如何实现的问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 07:28:38
1.有如下函数代码:
void CStringTokenizer::GetTokens(CStringArray * pTokens,CString sSource, CString sDelimiter)
{
pTokens->RemoveAll();
//开始解析
int nStart = 0;
int nLen = sDelimiter.GetLength();
while(true)
{
int i = sSource.Find(sDelimiter, nStart);
if(i < 0)
break;
if(i >= nStart)
{
CString s = sSource.Mid(nStart, i - nStart);
pTokens->Add(s);
}
nStart = i + nLen;
}
//剩下的字符串
if(nStart <= sSource.GetLength())
pTokens->Add(sSource.Mid(nStart));
}

2.然后用下面的代码来调用:
CStringTokenizer st;
CStringArray terms;
st.GetTokens(&terms, "我们$是$社会主义$接班人", "&");

操作过程如下:
A:用MFC生成WIN32 程序后,直接把2下面的代码COPY到WinMain的里面
B:把1里面的代码COPY到WinMain函数后面.
C:编译,出了一大堆错误.

对你的操作过程有点疑问:
你创建的是Win32工程还是MFC工程
如果是Win32工程,那么是没有CString 和 CStringArray 类的,这两个是MFC类库中的类,不能用于Win32工程。
如果你创建的是MFC工程,哪里找的WinMain?

如果要使用这个函数,要建立一个MFC Application工程,再添加相应的过程来测试。如建立一个MFC的对话框工程,在对话框上画一个按钮,增加按钮响应处理过程,然后把测试代码放在里面(当然,上面的函数要Copy到按钮处理过程上面)。

我很想大笑三声:你疯了
void CStringTokenizer::GetTokens
这是什么,这样的定义就说明,GetTokens是CStringTokenizer 的成员函数!
你连这个类的头文件都没有,你这样编译能通过吗?
不要只是copy,你起码得弄清楚c++里面的类是个什么东西再copy吧?
如果我没记错,CStringTokenizer和CStringArray都不是标准头文件里面的类,是自己新建的。你没这两个东西当然不编译通过了。
当然如果只是为了使用这个函数的功能还是可以实现的,改很少的东西就可以了,不过我希望你自己仔细看看,并改过来