- 主题:第三方的静态库
- 请教大家个问题。
 我使用了一个板子,其厂家同时提供了动态库(含dll和lib)、静态库。
 查看静态库,里面的函数都带了前缀/后缀,导致静态调用时报错。导致使用静态库 fail了。
 使用动态库是成功了。但有个疑问:dll文件中的函数也都有前缀/后缀,动态调用时,我使用纯的函数名称,怎么就不会报错呢?
 
 另外,厂家(microchip)既然提供了静态库,按道理应该就是可以使用的。有什么办法可以用起来吗。
 
 谢谢
 --
 FROM 61.164.217.*
 
- 【 在 france00 的大作中提到: 】
 : 请教大家个问题。
 : 我使用了一个板子,其厂家同时提供了动态库(含dll和lib)、静态库。
 : 查看静态库,里面的函数都带了前缀/后缀,导致静态调用时报错。导致使用静态库 fail了。
 : ...................
 
 动态库估计可能重新定义了导出名表, 使用导入导出名表的名字就可以访问。
 静态库的名字前缀,并不是随便添加的, 编译器生成这些东西严格按照一定的规则,主要是为了
 确定相同的函数名, 对应唯一的原型,用来应对C++多态 以及 C语言和Pascal的压栈方式不同,
 还有, 对于那些参数编译器使用了哪些寄存器优化等等。
 最简单的办法就是正确的引入头文件, 厂家既然提供了lib和dll, 按理说, 也应该提供了头文件,
 头文件里有明确的函数原型, 根据原型, 编译器能对应相应的
 --
 FROM 115.171.244.*
 
- 具体报什么错?还有用的是microchip哪个库
 【 在 france00 的大作中提到: 】
 : 请教大家个问题。
 : 我使用了一个板子,其厂家同时提供了动态库(含dll和lib)、静态库。
 : 查看静态库,里面的函数都带了前缀/后缀,导致静态调用时报错。导致使用静态库 fail了。
 : ...................
 --
 FROM 123.113.228.*