VC静态库开发与使用

开发一个静态库。

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、 为了保证编译不出错误,确保本工程和静态库的运行时库一致。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术工厂 设计师:CSDN官方博客 返回首页
评论

打赏作者

byxdaz

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值