将一个win32程序改成动态DLL
2014-09-12 23:17
162 查看
在做项目的时候遇到的问题,就是本来需要的是动态DLL,但是先前在解决方案中添加的项目是“Win32”的,所以在编译的时候,会提示出错:
error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用...
这个时候,一个方法是重新建一个DLL项目,然后把写好的程序copy过去,只是嫌这种方法麻烦,而且,猜想“属性”里可能会有相应的参数可作调整更改。
于是问了度娘,发现的确是有解决方法的,下面就此做一简要记录:
第一步,需要更改Win32项目的属性:属性》》配置属性》》常规》》配置类型,将其改为动态库(.dll),如下图
第二步:然后是 C/C++》》预处理器定义,将其改为“WIN32;_DEBUG;_WINDOWS;_USRDLL;XXX_EXPORTS;%(PreprocessorDefinitions)”,XXX是该项目的名称且需大写
第三步:在win32或console程序中加载动态DLL,在需要调用带动态DLL源文件(或头文件)处,添加如下代码
“#pragma comment(lib,"XXX.lib")”, XXX表示的是动态库的名称路径
error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用...
这个时候,一个方法是重新建一个DLL项目,然后把写好的程序copy过去,只是嫌这种方法麻烦,而且,猜想“属性”里可能会有相应的参数可作调整更改。
于是问了度娘,发现的确是有解决方法的,下面就此做一简要记录:
第一步,需要更改Win32项目的属性:属性》》配置属性》》常规》》配置类型,将其改为动态库(.dll),如下图
第二步:然后是 C/C++》》预处理器定义,将其改为“WIN32;_DEBUG;_WINDOWS;_USRDLL;XXX_EXPORTS;%(PreprocessorDefinitions)”,XXX是该项目的名称且需大写
第三步:在win32或console程序中加载动态DLL,在需要调用带动态DLL源文件(或头文件)处,添加如下代码
“#pragma comment(lib,"XXX.lib")”, XXX表示的是动态库的名称路径
相关文章推荐
- QT程序发布的一个问题:无法定位程序输入点与动态链接库QtCore4.dll
- 如何查看一个运行的exe执行程序需要有哪些DLL动态链接库
- 保证程序只有一个实例运行 &&& 动态调用DLL的研究
- Qt Creator 为我们的程序写一个动态链接库help.dll
- 一个Win32 C++ 动态连接库的模板 --- 调用方可管理DLL分配的内存
- C#程序实现动态调用DLL的研究
- 一个Win32程序的进化
- C#程序实现动态调用DLL的研究
- 一个简单的Win32程序(不用MFC)
- C#程序实现动态调用DLL
- 一个Win32 C++ 动态连接库的模板 --- 调用方可管理DLL分配的内存
- 第一次真正意义上的用VC++实现的一个完整的Win32程序-俄罗斯方块
- C#程序实现动态调用DLL的研究
- 【转】 一个从EXE、DLL文件中提取、存取图标完整程序
- 一个动态加载/卸载DLL的例子
- 一个DELPHI程序要调用DLL,而DLL中的函数名,参数个数,参数类型为不定
- 一个Win32程序的进化
- 现在有动态生成table若干行,每行里会有一个button.当鼠标点击其中一个button时.如何让程序知道是点在第几行的button上
- C#程序实现动态调用DLL的研究(转载)
- 创建一个完整Win32程序