怎么把静态库包装成动态库 现有两个项目,一个是静态库项目,一个是动态库项目,现在希望生成动态库项目时,把静态库中的类也同时导出,都是VC项目,请教应该怎样实现或用怎样折衷. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你的动态库项目与静态库项目没有冲突,你可以在动态库项目中包含静态库项目,然后在动态库项目写静态库中相应的导出函数,这样就可以只使用你的动态库了其实就像你的动态库里面用了Windows的静态库一样,只是自己在动态库中添加静态库的相应导出函数。 "如果你的动态库项目与静态库项目没有冲突,你可以在动态库项目中包含静态库项目,然后在动态库项目写静态库中相应的导出函数,这样就可以只使用你的动态库了 其实就像你的动态库里面用了Windows的静态库一样,只是自己在动态库中添加静态库的相应导出函数。"Q:具体"相应的导出"怎么导,能说明下吗?不是函数..是类.."针对静态库在动态库项目中做一个封装类,然后导出这个封装类"Q:那我每个类都要做个封装类? 必须要封装,而且还不能是继承式的封装。因为DLL导出类时,所有继承的基类也必须导出。 静态库中没有加__declspec(dllexport),就只能在DLL中封装一个导出函数 静态库中可以用__declspec(dllexport)编译生成lib? 可以在静态库中导出函数,但是很容易引起问题,假设只有你的DLL使用了这个lib,则没有问题,但如果有多个项目都要引用这个lib,则每个项目的可执行文件里都会导出这个函数。 恩...dll和静态库编译连接都成功了..不过隐式链接调用dll是连接错误.还是找不到外部符号..就是说导出不成功..估计是lib的中的代码根本没有连接到dll中.怎样能强制连接?现在有比较简单的方法解决..就是两个项目引用同一份文件,用宏开关设置是否启用导出.由于还要提供给隐式链接,所以默认定为#ifndef _USE_LIB_ #ifdef CLASS_EXPORTS #define CLASS_API __declspec(dllexport) #else #define CLASS_API __declspec(dllimport) #endif#else #define CLASS_API #endifdll : 启用CLASS_EXPORTSlib : 启用_USE_LIB_使用dll的项目 : 不启用 其他使用该lib文件的项目 : 启用 _USE_LIB_ 关于静态库中可以用__declspec(dllexport)导出类..能具体说一下吗?如果不行就结帖了. 说说你代码中的防错处理 奇怪的问题!非模态对话框使用WS_CHILD风格生成,在此非模态对话框上的Edit都是无法输入的,请教高手指点。 请问Ellipse()里面的参数的具体含义是什么? 关于文件读写的问题,很急啊! 如何在按纽上显示提示信息?在不同的按纽显示不同住信息? VC中关于ODBC变量的问题任何有价值线索都送分 Win2k启动时的系统编程? string型参数与“xxx”直接传值的区别在哪 怎样用AT指令使56k猫工作在33.6K? 救命!如何把dll变成lib??? 如何高效的计算出异形窗体的透明区域?(!!!!!!!!!!!!) 反钓鱼系统的设计.请教几个问题
其实就像你的动态库里面用了Windows的静态库一样,只是自己在动态库中添加静态库的相应导出函数。
其实就像你的动态库里面用了Windows的静态库一样,只是自己在动态库中添加静态库的相应导出函数。"Q:具体"相应的导出"怎么导,能说明下吗?不是函数..是类..
"针对静态库在动态库项目中做一个封装类,然后导出这个封装类"Q:那我每个类都要做个封装类?
估计是lib的中的代码根本没有连接到dll中.怎样能强制连接?现在有比较简单的方法解决..就是两个项目引用同一份文件,用宏开关设置是否启用导出.由于还要提供给隐式链接,所以默认定为
#ifndef _USE_LIB_
#ifdef CLASS_EXPORTS
#define CLASS_API __declspec(dllexport)
#else
#define CLASS_API __declspec(dllimport)
#endif
#else
#define CLASS_API
#endifdll : 启用CLASS_EXPORTS
lib : 启用_USE_LIB_
使用dll的项目 : 不启用
其他使用该lib文件的项目 : 启用 _USE_LIB_