VS2005建立和调试基于C++的DLL项目
2011-08-29 13:44
288 查看
1. [b]VS2005建立和调试基于C++的DLL项目[/b]
File->New->project->Win32.选择Win32 Console Application, 如图示
然后点击“确定”,再到后面的向导中进行设置
“应用程序类型”选择“DLL”,点击Fnish,那么VS2005就自动创建了一个基于C++的DLL模板了。
生成项目,然后在对应的目录下面看到相应的DLL文件了,但是此时里面还没有任何功能,用户需要根据实际需求为DLL编写导出函数,然后供其它应用执行程序调用。
例子:补充下面代码,提供一个导出函数
__declspec(dllexport) int Add(int i, int j);
intAdd(int i, intj)
{
return i+j;
}
编译,确保在debug 目录下生成了dll.dll, 及dll.lib 文件
在dll 工作空间中新建一个工程叫TestDll.添加如下代码
intAdd(int i, intj); // 外部dll函数的调用声明
int_tmain(int argc, _TCHAR* argv[])
{
int sum=Add(3,5);
printf("sum is %d",sum);
return 0;
}
编译会出现:1>testdll.obj: error LNK2019: unresolved external symbol "int __cdeclAdd(int,int)" (?Add@@YAHHH@Z) referenced in function _wmain
这很正常,因为链接器不知道Add(int I, int j) 到哪里去找, 解决办法,添加dll.lib 到链接库,方法如下:Properties->Configuration Properties->linker->input->additionalDependences. 添加dll.lib, 如图示:
再编译,出现如下错误。
1>LINK : fatal error LNK1104: cannotopen file 'dll.lib'
找不到dll.lib, 因为你还没有指定查找路径。好,现在添加库查找路径。
方法如下:Properties->Configuration Properties->linker->general->additionallibray directory. 添加..\debug, (因为dll.dll 就在..\debug 目录下)如图示:
编译,通过。单步运行。可以跟踪到dll 的 int add(int I, int j) 函数中去。
补充: DLL 函数的调用还可以采用动态加载DLL 的方式,具体为LoadLibrary, GetProcAddress., 这里不再举例。
OK! 结束!
靠,发现不能实现图文混排,效果失色不少。
File->New->project->Win32.选择Win32 Console Application, 如图示
然后点击“确定”,再到后面的向导中进行设置
“应用程序类型”选择“DLL”,点击Fnish,那么VS2005就自动创建了一个基于C++的DLL模板了。
生成项目,然后在对应的目录下面看到相应的DLL文件了,但是此时里面还没有任何功能,用户需要根据实际需求为DLL编写导出函数,然后供其它应用执行程序调用。
例子:补充下面代码,提供一个导出函数
__declspec(dllexport) int Add(int i, int j);
intAdd(int i, intj)
{
return i+j;
}
编译,确保在debug 目录下生成了dll.dll, 及dll.lib 文件
在dll 工作空间中新建一个工程叫TestDll.添加如下代码
intAdd(int i, intj); // 外部dll函数的调用声明
int_tmain(int argc, _TCHAR* argv[])
{
int sum=Add(3,5);
printf("sum is %d",sum);
return 0;
}
编译会出现:1>testdll.obj: error LNK2019: unresolved external symbol "int __cdeclAdd(int,int)" (?Add@@YAHHH@Z) referenced in function _wmain
这很正常,因为链接器不知道Add(int I, int j) 到哪里去找, 解决办法,添加dll.lib 到链接库,方法如下:Properties->Configuration Properties->linker->input->additionalDependences. 添加dll.lib, 如图示:
再编译,出现如下错误。
1>LINK : fatal error LNK1104: cannotopen file 'dll.lib'
找不到dll.lib, 因为你还没有指定查找路径。好,现在添加库查找路径。
方法如下:Properties->Configuration Properties->linker->general->additionallibray directory. 添加..\debug, (因为dll.dll 就在..\debug 目录下)如图示:
编译,通过。单步运行。可以跟踪到dll 的 int add(int I, int j) 函数中去。
补充: DLL 函数的调用还可以采用动态加载DLL 的方式,具体为LoadLibrary, GetProcAddress., 这里不再举例。
OK! 结束!
靠,发现不能实现图文混排,效果失色不少。
相关文章推荐
- FAT32文件系统中使用VS2005调试C++项目出现MSVCP80D.dll错误
- 在c#项目中调用及调试c++写的dll
- vs2005建立空项目无法调试-->解决
- 在c#项目中调用及调试c++写的dll
- VS2005 C++ 项目怎样添加“库目录”和“包含目录”
- VS2005(c#)项目调试问题解决方案集锦
- C/C++ 关于生成静态库(lib)/动态库(dll)文件如何使用(基于windows基础篇)
- 用VS2010建立解决方案,用于生成多个Dll的项目
- 在Windows Vista+IIS7中使用vs2005 调试.net2.0项目
- VS2005中调试MonoRail项目
- 如何在C#中调试C++写的DLL代码
- 基于文本的C/C++用GNU gdb 调试
- VS2005(C#)项目调试问题解决方案集锦
- 基于maven的web项目在Eclipse中使用Tomcat调试
- 如何在Vista IIS 7 中用 VS2005 调试 Web 项目?
- 深入C/C++之基于Cookie的安全检查(VS2005)
- C++调试环境的建立(仅适合初学者,高手莫入)
- 如何在Vista IIS 7 中用 vs2005 调试 Web 项目
- VS2005(c#)项目调试问题解决方案集锦
- vs2012 C#调用c++ dll 调试跟踪到代码内