小弟刚进了一家公司不久,公司给了我一份代码,研究了一段时间代码,发现一个问题,代码中有些代码只有头文件,没有cpp文件,我非常确定确实没有,我想公司可能是为了保密重要代码,我也不奢求能看到代码,但是我就一个大疑问,这是怎么做到的?只有头文件却没有cpp,而且头文件里也没用__declspec(dllexport)这样的关键字,所以也不是dll,请问各位大神,这是怎么做的?MFCmfcdll

解决方案 »

  1.   

    怎样写到lib文件里?比如以后我想把我的重要代码也写到lib里,怎样做啊,写到lib里就起到了加密的作用了吗?
      

  2.   

    不是很正常么?
    很多都是.C文件转换过来的。自然没有.h文件。
    而且,就算没有.h本身.cpp也可以正常工作的。
    直接操作cpp文件就可以了
      

  3.   

    我遇到的是:有.h文件,没有.cpp的文件,比如这样:class CTest
    {
    public:
    CTest();
    ~CTest();
    private:
    void Test();
    public:
    void Test2();
    };
    然后就没有cpp了,也没写着__declspec(dllexport),而且在外边有调用Test()函数。
      

  4.   

    有声明就可以用了啊。
    链接时加上对应的lib就可以了。
      

  5.   


    还是不明白
    那函数的实现咋写到lib里的,也没有DLL啊
      

  6.   


    我看了一下,确实是写到lib里了,我用记事本打开lib,看到函数名了,怎么写进去的,求解,感激不尽
      

  7.   

    汗啊。
    是VS写进去的。有专门的dll工程,自己编写一个dll/lib就知道了。
    头文件只是说明函数原型,好让你的调用格式是正确的。(编译时检查)
    也就是,只有头文件也可以编译通过,但是如果不把dll或者lib包含进来,找不到源码执行会出错。
      

  8.   

    需要再单独建个工程吗,是建的DLL工程吗?
      

  9.   


    DLL写过,经验不多,我写的DLL是有dll文件和lib文件的,这个怎么只有一个lib啊?
      

  10.   


    能编译通过?编程成lib或dll后,declspec(dllexport)可以删掉的
      

  11.   


    能编译过,能运行,有lib,没dll,所以不懂了
      

  12.   


    可以在编译选项设置
    一种是动态库(.dll),会生成dll和lib
    另一是静态库(.lib),只有lib
      

  13.   

    如果没有DLL的话,那么这个LIB文件应该是写成静态库的形式的。你可以看一个LIB的大小,如果比较大,那就说明LIB是静态库,即代码是写在LIB中的,如果LIB比较小,那这个LIB是配合DLL用的。
      

  14.   

    不好意思,刚才看错了。你这个属于静态库,静态库的好处在于,很多系统关联DLL的都编入进Lib中去。即使本身系统没安装基本支持文件,也可以启用。坏处是消耗空间巨大。