第一次做项目,用c++编了一些图像处理的算法,最后把一系列处理过程写入了一个主函数中。现在想提交给做整体框架的人,要求就是,他在工程中包含我的文件,就可以调用这个主函数,而其他的函数,以及相对于主函数的外部变量都是不可见的。
   我现在就是写了一个.h文件和.cpp文件,把所有的函数和变量都放在里面,然后放入工程的globals中。怎样封装才是规范的做法,我就不清楚了。请大家指点,不需要具体的步骤,只要一个大致的方向就可以,我好去查文章实现。谢谢!

解决方案 »

  1.   

    MFC你的类库你应该熟悉吧,和它一样封装不就行吗?
      

  2.   

    封装为一个类就行,为何要作为全局函数>>而其他的函数,以及相对于主函数的外部变量都是不可见的。
    不太清楚什么意思.不知道对什么"都是不可见的",主函数?
    调用主函数的函数?
      

  3.   


    对于一种类型的算法, 可以采用 strategy 模式. 效率不会减低多少的.对于图象处理, 该接口可以是: 
    virtual int do_imaging(IN OUT BYTE** pImageData); // IN, OUT 定义的空宏, 表示输入输出
    // 返回某个处理结果索引
      

  4.   

    to  mynamelj(风之羽翼):
       如果封装成类,如何得到主函数的入口?该去看哪方面的知识?谢谢。to  hooliganstreet() :
       我的程序大致是这种结构
        BOOL a(){}
        BOOL b(){}
        int i,j;
        BOOL main(){}
       就是说,别人只能看到main()函数,而a(),b(),i,j等函数和变量不让别人看到。
       封装成类,主要是我不知道该如何让别人调用main(),请指教,谢谢。to enoloo(在水一方):
        我不太明白你的意思,回头在看看你说的strategy 模式,谢谢。
      

  5.   

    你封装在class里面然后用class的方法来调用它.
    在h头文件只看得函数原形,cpp源文件可以封装在lib和dll文件里.////////////////////////myClass.h//////////////////////
    #ifndef _MYCLASS_H_FILE
    #define _MYCLASS_H_FILEclass myClass
    {
    public:
       BOOL a();
       BOOL b();protected:
       int i,j;
    };#endif  //end _MYCLASS_H_FILE///////////////////////myClass.cpp///////////////////////
    //有必要的话你可以把它编译成lib和dll文件
    #include "myClass.h"BOOL myClass::a()
    {
      //Do some thing...
    }BOOL myClass::b()
    {
      //Do some thing...
    }
    ////////////////////////////dothing.c////////////////////////////////
    //这个文件里放着你的主函数,对这个文件进行编译....
    #include "myClass.h"void main()
    {
       //Do some thing...   myClass m_myObj;
       m_myObj.a();      //Call function a().
       m_myObj.b()       //Call function b().
       m_myObj.i = 10;
       m_myObj.j = 20;
    }
      

  6.   

    谢谢大家,谢谢mynamelj(风之羽翼)