小弟刚进了一家公司不久,公司给了我一份代码,研究了一段时间代码,发现一个问题,代码中有些代码只有头文件,没有cpp文件,我非常确定确实没有,我想公司可能是为了保密重要代码,我也不奢求能看到代码,但是我就一个大疑问,这是怎么做到的?只有头文件却没有cpp,而且头文件里也没用__declspec(dllexport)这样的关键字,所以也不是dll,请问各位大神,这是怎么做的?MFCmfcdll
调试欢乐多
很多都是.C文件转换过来的。自然没有.h文件。
而且,就算没有.h本身.cpp也可以正常工作的。
直接操作cpp文件就可以了
{
public:
CTest();
~CTest();
private:
void Test();
public:
void Test2();
};
然后就没有cpp了,也没写着__declspec(dllexport),而且在外边有调用Test()函数。
链接时加上对应的lib就可以了。
还是不明白
那函数的实现咋写到lib里的,也没有DLL啊
我看了一下,确实是写到lib里了,我用记事本打开lib,看到函数名了,怎么写进去的,求解,感激不尽
是VS写进去的。有专门的dll工程,自己编写一个dll/lib就知道了。
头文件只是说明函数原型,好让你的调用格式是正确的。(编译时检查)
也就是,只有头文件也可以编译通过,但是如果不把dll或者lib包含进来,找不到源码执行会出错。
DLL写过,经验不多,我写的DLL是有dll文件和lib文件的,这个怎么只有一个lib啊?
能编译通过?编程成lib或dll后,declspec(dllexport)可以删掉的
能编译过,能运行,有lib,没dll,所以不懂了
可以在编译选项设置
一种是动态库(.dll),会生成dll和lib
另一是静态库(.lib),只有lib