在VS中使项目同时具有应用程序和动态库两种编译设置
2009-12-13 16:30
99 查看
在VS中使项目同时具有应用程序和动态库两种编译设置
在工作中的一个项目中,原有的代码是EXE类型的工程,由于项目改进需要,现在想将原有的工程修改为动态库类型,一边让原有项目的功能作为动态库在另一个项目中发挥作用。我想很多朋友在工作中都有与我类似的经历。下面以debug配置为例,说明一下如何设置。
1)在配置管理器中的活动解决方案中选"新建",在名称中输入"Dll Debug",在"从此处复制设置"中选择"debug",切记勾选下面的"创建新的项目配置"。
2) 在上一步确定后,会发现活动解决方案配置中多了一个"dll Debug"配置项,但此时它的配置与原有的debug配置是一样的。
3) 在项目属性中,将“配置类型”由原来的"应用程序.exe"改为"动态库.dll"
4) 在项目属性的"c/c++"-"预处理器"-"预处理定义"中加入"_USRDLL;TEST_EXPORTS",其中TEST_EXPORTS是用于控制函数导出的。
5) 修改源程序中的入口,形成如下的根据宏定义来处理的格式:
#ifdef _USRDLL
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
#else
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
...
}
#endif
6) 将原有程序中的一些功能代码通过新的导出函数进行封装,即可达到动态库改进的目的。
在工作中的一个项目中,原有的代码是EXE类型的工程,由于项目改进需要,现在想将原有的工程修改为动态库类型,一边让原有项目的功能作为动态库在另一个项目中发挥作用。我想很多朋友在工作中都有与我类似的经历。下面以debug配置为例,说明一下如何设置。
1)在配置管理器中的活动解决方案中选"新建",在名称中输入"Dll Debug",在"从此处复制设置"中选择"debug",切记勾选下面的"创建新的项目配置"。
2) 在上一步确定后,会发现活动解决方案配置中多了一个"dll Debug"配置项,但此时它的配置与原有的debug配置是一样的。
3) 在项目属性中,将“配置类型”由原来的"应用程序.exe"改为"动态库.dll"
4) 在项目属性的"c/c++"-"预处理器"-"预处理定义"中加入"_USRDLL;TEST_EXPORTS",其中TEST_EXPORTS是用于控制函数导出的。
5) 修改源程序中的入口,形成如下的根据宏定义来处理的格式:
#ifdef _USRDLL
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
#else
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
...
}
#endif
6) 将原有程序中的一些功能代码通过新的导出函数进行封装,即可达到动态库改进的目的。
相关文章推荐
- 如何设置用vs编辑嵌入式项目(用keil 编译)+设置vs编辑器的关键字的颜色
- 使用vs编译程序选择新建”空项目“与”win32控制台应用程序“的区别。
- 使用vs编译程序选择新建”空项目“与”win32控制台应用程序“的区别。
- VS.net项目编译设置(全部编译)
- VS设置同时启动多个项目
- VS 如何设置编译后的程序可以以管理员身份运行
- 并行编译加快 VS C++ 项目的编译速度
- VS.Net项目的条件编译常数“DEBUG”、“TRACE”必须大写才起作用。
- VS2015 Web项目设置远程访问
- VS编译WebService 报 进程不具有此命名空间的访问权限的解决办法
- Vss2008 项目调试编译并继续功能(Debug 同时修改代码功能)(已解决)
- VS 设置编译后的程序可以以管理员身份运行
- vs出现“已经在解决方案中打开了具有该名称的项目”问题的解决方案
- VS低版本打开高版本解决方案(如08打开10、12、13版本vs编译的项目)
- 在Linux中使用VS Code编译调试C++项目(gcc/g++、Makefile入门、vs code)
- MRPT笔记——使用编译好的MRPT库建立VS2013项目
- win7/win10 + VS2015 + cocos2dx-3.13的win32环境配置 与 项目编译时间优化和项目精简
- CMake设置生成vs工程的动态库输出路径
- VS编译时output/Errorlist窗口自动弹出设置
- VS项目中非stdafx.h文件目录包含stdafx.h的编译失败的解决方法