dll常见问题
来源:互联网 发布:联通大数据公司 编辑:程序博客网 时间:2024/06/06 10:40
几个月前还对DLL十分熟悉,短短几个月时间基本上就忘光了,甚至连dll导入导出步奏都不知道,看来的确得多写博客啊!
现在对dll以问答形式做一个简单的回顾。
问题1:vs2012环境,dll连接时报错
error LNK1201: error writing to program database 'D:\project\dll\OpenNat_DLL\Debug\OpenNat_DLL.pdb'; check for insufficient disk space, invalid path, or insufficient privilegeD:\project\dll\OpenNat_DLL\OpenNat_DLL\LINK
百度后知道.pdb 文件是用来存放调试信息的,找不到该文件则应该跟工程的Debug info 设置有关。
分析之后,发现原来是自己把整个工程所在的目录作了移动,放到了另一个文件夹下面。
解决方法,移回原来的目录即可。(所以,大家千万不要有事没事就移动工程)还有另一个解决方案是设置属性,C/C++属性页,Category:选择General,在Debug Info:选项的下拉列表中选择Program Database 或 Line Numbers Only。
用类将函数和数据封装到Dll操作便捷,使用简单
问题2,:dll导入导出类基本步奏
- Dll工程编译完成后,将.lib和.dll文件拷贝到测试和使用dll的工程的适当目录下(一般是debug或release目录),然后将Dll工程中的导出类的头文件(以下简称头文件)拷贝到测试和使用dll的工程的适当目录下(在我的程序中是拷贝到此工程文件所在目录),然后把这个拷贝过来的头文件通过下面2和3进行修改。
- 在Dll工程中的头文件使用的是 #define DLLCLASS_API __declspec(dllexport) 表示导出,而在测试和使用dll的工程中的头文件使用的是 #define DLLCLASS_API __declspec(dllimport) 表示导入
- 不论Dll工程的头文件如何实现(比如说包括内联函数等等),在测试和使用dll的工程中的头文件中全部都是声明而没有定义(即将类成员函数的实现部分去掉)
- 在测试和使用dll的工程的那个文件中包含对dll库的引入:一、在stdafx.h中include头文件。二、在头文件中加入一句#pragma comment(lib,"DLL.lib")
问题3:vs中调试dll
亲试有效,留下来记住。如下是步骤:
1、在“Solution Explorer”中找到要调试的dll项目,点击右键,选择Set as StartUp Project,将dll设置为调试启动项目;然后选择dll项目,点击右键,选择Properties,打开属性页设置页面;
2、在Properties 页面的中,选择Configuration Properties下拉菜单,然后选择Debugging;
3、在Debugging的页面中,在第一行Debugger to launch的下拉菜单中,如果是本地调试选择Local Windows Debugger,远程调试选择Remote Windows Debugger;
4、在Debugging的页面中,Command中选择下拉菜单,找到引用该dll的应用程序(一般到debug里找.exe)
- dll常见问题
- symbian dll常见问题
- delphi DLL 常见问题
- Delphi开发DLL常见问题
- 什么是动态链接库(DLL)以及常见问题
- C#调用C++DLL库常见问题
- 静态加载dll,动态加载dll及常见问题处理
- VB开发动态链接库DLL和标准API DLL方法和常见问题
- 缺少d3dx9_xx.dll/缺少PhysXLoader.dll/配置不正确等常见问题解决方法
- 常见问题
- 常见问题
- 常见问题
- 常见问题
- 常见问题
- 常见问题
- 常见问题
- 常见问题
- 常见问题
- 一步一步学JSP--JSTL(三)
- XCode发布App到调试机
- 嘻哈叨叨叨第一期:回顾2014~2015(1.23)
- hadoop2.6.0 shell常用操作
- 算法的基本概念
- dll常见问题
- 如何有效的减少重复的代码
- 2015年1月19日 对阿里巴巴点赞VS拍砖
- css+div 图片文字垂直居中问题 (转)
- ImageView android:scaleType属性
- HotSpot SA #2:ClassDump
- 使用Gradle构建Android项目
- 简单的01背包问题(采药)
- three.js 源码注释(八十五)extras/geometries/PolyhedronGeometry.js