- 主题:第三方的静态库
请教大家个问题。
我使用了一个板子,其厂家同时提供了动态库(含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.*