ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 动态库与静态库程序 > 设置目标格式【编译菜单->设置目标格式->DLL动态库 或 LIB静态库】 > 静态库库与动态库的编译方式除设置目标格式外基本一致,需要注意的一点是静态库不能拥有 【_启动子程序】函数。 * **动态库介绍** 1. 对于动态库DLL而言 启动代码(DllMain) 也同样是 【_启动子程序】,它本质就是DllMain 只是名字不一样,它同样有三个参数,如下图。 ![](https://img.kancloud.cn/78/51/78512fcd86fea4dbcc485ca0f5e63742_680x590.png) 2. 如果想导出一个函数操作方式还是一样点击【公开】即可。 3. 你应该发现了备注的开头里有 [__stdcall] 、 [__fasecall]关键词,是的这是E64设置函数调用约定的方式,所有的子程序、包括DLL声明在编译为32位时一律默认是cdecl约定,在编译为64位时一律是 fastcall约定,可以通过在备注字段开始的位置使用关键词来修改调用约定。 * **静态库介绍** 1. 静态库 相对于动态库除了没有启动子程序以外其他的方法均一致,编译前设置目标格式位 LIB静态库即可。 2. 需要注意的一点就是静态库不能拥有 【_启动子程序】函数,如果这样做了仍然能正常编译,但在调用的时候会出现符号冲突,因为一个程序只允许出现一个【_启动子程序】。