更新时间:2016-06-23 18:35:40浏览次数:1+次
1.我们首先在VS中创建新项目,选择类型可以是【Win32控制台应用程序】或【win32项目】,后面步骤还可以修改类型的。
2.下一步,到下图界面,选择Dll这个【应用程序类型】。【附加选项】选择空项目,则生成的项目中没有任何预先创建的文件,需要自己手动添加。如果不勾选空项目,则会自动创建几个基础文件。见第3步的说明。
3.创建好项目后,左边的是空项目,右边的是没有选择空项目的项目。可以看到右边的项目有好几个自动创建的文件。
4.非MFC的dll项目,一般也不需要用mfc的特性,这样dll简单小巧。所以我们也就可以删除stdafx.h和stdafx.cpp以及targetver.h文件。然后将tmp_dll文件中的引用stdafx的头文件代码删除。这样也就是你需要的基础的dll项目的文件了,其实就多了两个文件,一个是dll的入口,一个是dll的代码。我们写的代码都在入口之外的代码文件中写。dll中代码的写法就和我们普通的应用程序差不多。你就可以将dllmain当做main来看待,这样感觉就一致了。其实dll开发也就这么回事。只是你要导出的函数,记得在函数前面加上extern "C" __declspec( dllexport ) ,如:
extern "C" __declspec( dllexport ) void showUI(){}
其实就多了一个修饰符而已。
如果是空项目,那么你自己添加一个dllmain入口函数文件,代码如下:
// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include <Windows.h>
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
如果没有特别要求,如在dll加载时或者卸载时做一些处理,这里的代码就不用修改和添加处理,默认就行了。就需要添加这一个。其他的代码文件就是你自己代码需要的文件了,根据需要添加。上面那个多出来的一个文件,也就是写自己代码的文件了。
编译生成和Exe项目是一样的,得到的是dll和lib两个文件,这两个文件就可以供其他项目使用了。dll和lib的使用,请在C++技术网搜索【lib库知识全面讲解、dll动态链接库全面讲解】这两个系列的文章。
一个小技巧:如果dll项目是你写的,那么使用dll的项目可以在dll项目所在的解决方案中添加,这样一个解决方案中的dll项目和使用dll的项目就如同在一个项目中,调试的时候,就可以直接定位到dll里的代码了,这样调试效率很高。
相关资讯