当前位置:C++技术网 > 精选软件 > 教你创建一个dll项目,非MFCdll项目

教你创建一个dll项目,非MFCdll项目

更新时间:2016-06-23 18:35:40浏览次数:1+次

1.我们首先在VS中创建新项目,选择类型可以是【Win32控制台应用程序】或【win32项目】,后面步骤还可以修改类型的。

教你创建一个dll项目,非MFCdll项目

2.下一步,到下图界面,选择Dll这个【应用程序类型】。【附加选项】选择空项目,则生成的项目中没有任何预先创建的文件,需要自己手动添加。如果不勾选空项目,则会自动创建几个基础文件。见第3步的说明。

教你创建一个dll项目,非MFCdll项目

3.创建好项目后,左边的是空项目,右边的是没有选择空项目的项目。可以看到右边的项目有好几个自动创建的文件。

教你创建一个dll项目,非MFCdll项目

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(){}
     其实就多了一个修饰符而已。


教你创建一个dll项目,非MFCdll项目

    如果是空项目,那么你自己添加一个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里的代码了,这样调试效率很高。