看流星社区

 找回密码
 注册账号
查看: 2205|回复: 0

VC静态库开发与使用

[复制链接]

该用户从未签到

发表于 2017-6-3 14:25:58 | 显示全部楼层 |阅读模式
开发一个静态库。
1、打开VC,新建工程->win32项目(LIB-TEST),在“应用程序设置”中选择“静态库”。
2、导出接口使用extern "C" 标记,声明为C编译、连接方式的外部函数
比如:
/*
功能说明:初始化
参数说明:pLicenseFileName,表示License文件名称;pProgramName,表示程序名称
返回值:int类型 0,表示成功,非0,表示错误码
*/
extern "C" int Register_Init(char*pLicenseFileName="License.lic",char *pProgramName=NULL);

/*
功能说明:反初始化
参数说明:无
返回值:int类型 0,表示成功,非0,表示错误码
*/
extern"C" int Register_UnInit();

/*
功能说明:是否合法注册
参数说明:无
返回值:int类型 0,表示合法注册,非0,表示不合法注册
*/
extern"C" int Register_IsValidRegister();
3、在项目中山实现接口(或者新建一个.cpp文件)。
int Register_Init(char*pLicenseFileName,char *pProgramName)
{
//实现处理…
}
4、生成debug和release静态库,分别不同命名。

5、如果想在静态库中使用对话框的话,需要一个接口,设置外面的主资源句柄,以便静态库使用。
void Lib_Init(HINSTANCE hMainResource)
{
HINSTANCE hOldResrouce = (HINSTANCE)AfxGetResourceHandle();
AfxSetResourceHandle((hMainResource);
m_pDlgTip = new CAuthenticationTipDialog();//对话框
m_pDlgTip->Create(CAuthenticationTipDialog::IDD,NULL);
...
AfxSetResourceHandle(hOldResrouce);
}


工程引用静态库
1、定义接口,即静态库对外的函数。
2、debug和release分别引用不同的debug和release静态库。
3、为了保证编译不出错误,确保本工程和静态库的运行时库一致。
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-19 16:09

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表