一些VC生成动态链接库的问题记载(不断更新中)
来源:互联网 发布:智取威虎山 老八 知乎 编辑:程序博客网 时间:2024/06/05 15:45
- 动态链接库编译成功后,主函数的调用报错
错误:error LNK2001: unresolved external symbol __imp__??
这一般是函数前面的__declspec(dllexport)和_declspec(dllimport) 没有定义好。具体的做法:
头文件中:
#ifdef LIBAV3_EXPORTS
#define libav3_API __declspec(dllexport)
#else
#define libav3_API __declspec(dllimport)
#endif
libav3_API int AV3EncClose(AV3EncFramePtr hEncoder);
dll文件中:
libav3_API int AV3EncClose(AV3EncFramePtr hEncoder)
{
}
- 主函数调用DLL,DLL中有fwrite的,会死掉
一般这种情况是主函数定义指针,在dll进行了写操作,这就需要在建立主函数的时候,一定要
把工程文件建立成“use MFC in a shared DLL”的类型。
- libc.lib和 MSVCRTD.lib冲突的问题
主函数调用编译时会报LINK2005的error,说一些函数在libc.lib和在MSVCRTD.LIB中的定义冲突。在网上搜索了很多资料,大家都是说不是ignor这个,就是ignor那个。后来仔细分析了一些,libc.lib是调用静态库是需要使用的,而MSVCRTD.lib是调用静态库时需要使用的。而二者同时有许多重复定义的函数,就会导致冲突。所以得出结论是?在vc6.0里是不能同时调用动态库和静态库的。把库函数都改成静态库。问题就解决了。
- dll找不到,因此这个应用程序未能启动
在执行主函数的时候,会报下面的错,找不到dll。
经过试验,将生成的dll拷贝到主函数的debug下面,就不会报错了。可能vc对于这种指向性的dll调用有问题。
- 一些VC生成动态链接库的问题记载(不断更新中)
- VC中导出类生成动态链接库的方式
- VC中生成动态链接库的三种方式(导出函数)
- BCB与VC的一些区别(不断更新中)
- 一些整理的链接地址(不断更新)
- VC++------------一些简单的错误(不断更新)
- VC如何问题集锦(不断更新中...)
- VC编译\链接\运行:包含文件、包含库lib、包含动态库dll的一些问题
- VC调用MatLab生成的动态链接库
- vc++调用MATLAB complier生成的C动态链接库
- Qt调用VC++生成的动态链接库
- labview调用VC++生成的动态链接库DLL
- VC中链接动态链接库的方法
- MinGW gcc 生成动态链接库 dll 的一些问题汇总
- MinGW gcc 生成动态链接库 dll 的一些问题汇总 (补充)
- eXosip生成动态链接库(VC)
- vc++调用MATLAB complier生成的C动态链接库(画图)
- vc++调用MATLAB complier生成的C动态链接库(输入参数为字符类型)
- xfire_namespaceuri canot be null
- Linux文件系统(三)—— 文件系统常用工具介绍
- C#数据库入门-013:数据集和数据适配器
- 多线程,重叠I/O,异步读写 命名通道服务器源码
- 读NORFLASH ID初体验
- 一些VC生成动态链接库的问题记载(不断更新中)
- ORACLE 性能调试 总结中ing
- windows平台.lnk文件感染技术研究
- 祝福所有朋友
- 查询数据库更改
- http文件头详解
- MARK关于临界区
- 开发环境搭建3:linux下tuxedo安装
- 为了