我新建了一个ATL工程,里边有两个ATL类,如果这两个类中的函数需要调用同样的一段代码,为了代码不重复,我将这段代码作成一个公共函数,也象全局变量那样定义,可是在这两个类中就是不认这个函数,编译的时候提示出错:
error C2065: 'CommFun' : undeclared identifier
'CommFun' 这个是函数名,我要怎样定义这个函数才能在这两个ATL类中正确调用呢,

解决方案 »

  1.   

    是这样一个ATL工程中肯定有许多类,类里面又有接口,接口里面有函数,当这些接口中的函数都要使用一个公共的功能比如对一串字符串的处理,然后我想把这种对字符串的处理单独出来当作一个公共的函数,而这个函数就可以让这个ATL工程中的各个类所使用,然后我就象在普通的工程中那样定义:
    1。在stdafx.h中声明:extern BOOL IsComm(CString strMobileNo);
    2。在工程的主文件中实现BOOL IsComm(CString strMobileNo)
    { 。}
    3。然后在工程的某个类中使用
    IsComm(“aaa”)
    编译却不通过,说是找不到IsComm的定义,这是为什么呢,
    同样的步骤我在普通的mfc工程中是没问题的
      

  2.   

    在stdafx.h中声明:BOOL IsComm(CString strMobileNo);
    在stdafx.cpp中实现:BOOL IsComm(CString strMobileNo){ …… }这不是更直观?