编写第一个动态库,使用visual studio 6

安装Visual Studio 6.0,安装时勾选注册环境变量

 

编写测试代码

 

 在控制台执行   cl myDll.c /LD 

 我的电脑上执行的命令:

E:\Windows编程\动态链接库dll>cl myDll.c /LD
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

myDll.c
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:myDll.dll
/dll
/implib:myDll.lib
myDll.obj
   Creating library myDll.lib and object myDll.exp

 生成的新文件myDll.dll就是动态库,但是现在的动态库还不能使用,因为myDll.c中的函数还没有导出

我们可以使用dumpbin命令,查看myDll.dll,命令为 dumpbin myDll.dll /exports,确实可以看到myDll.c中的add函数还没有导出。

 

为了能够使用动态库,我们必须 能够把源代码里的函数导出,于是我们需要在源代码的函数前面加上__declspec(dllexport)

 

 再编译一次

 

 这一次多了两个文件,myDll.lib  , myDll.exp

 我们在用dumpbin myDll.dll  /exports命令检查一下add函数是否导出,可以看到,add函数已经导出了,现在的动态库就可以真正使用了

 编写测试文件test.c

 使用命令 cl  test.c会报错

 重新编译,注意扩展名是  .lib ,这里的myDll.lib并不是静态库,它里面也不包含任何(add函数的)代码,它只是个给链接器提供信息的文件(也叫导入库)

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Visual Studio中引用动态库有以下步骤: 1. 首先,需要将库文件(.lib)和头文件(.h)复制到项目文件夹中。如果是自己打的库,可以在需要引用库的项目中新建一个include目录和一个lib目录,将头文件放在include目录下,将库文件放在lib目录下。如果是第三方库,则直接进行下一步。 2. 打开Visual Studio,打开你的项目。 3. 在Visual Studio的菜单栏上选择"工具",然后选择"选项"。 4. 在弹出的窗口中,选择"项目和解决方案",然后选择"VC++目录"。 5. 在"VC++目录"中,选择"包含文件"并点击右侧的编辑按钮。 6. 在"包含文件"的编辑窗口中,点击右侧的"新建目录"按钮,并选择你刚才创建的include目录。 7. 点击确定关闭"包含文件"编辑窗口。 8. 在"VC++目录"中,选择"库文件"并点击右侧的编辑按钮。 9. 在"库文件"的编辑窗口中,点击右侧的"新建目录"按钮,并选择你刚才创建的lib目录。 10. 点击确定关闭"库文件"编辑窗口。 11. 在Visual Studio的解决方案资源管理器中,右键点击你的项目,选择"属性"。 12. 在"属性"窗口中,选择"配置属性",然后选择"链接器",然后选择"常规"。 13. 在"常规"选项卡中,找到"附加库目录",点击右侧的编辑按钮。 14. 在"附加库目录"编辑窗口中,选择你刚才创建的lib目录,并点击确定。 15. 在"属性"窗口中,选择"配置属性",然后选择"链接器",然后选择"输入"。 16. 在"输入"选项卡中,找到"附加依赖项",点击右侧的编辑按钮。 17. 在"附加依赖项"编辑窗口中,输入你要引用的库文件的名称,并点击确定。 现在你的项目已经成功引用了动态库。在编写代码时,你可以使用库文件中提供的函数和类。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法](https://download.csdn.net/download/weixin_38632763/12808576)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [visual studio 动态/静态链接库引入](https://blog.csdn.net/weixin_43488671/article/details/115472266)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值