2015-09-25 47 views
0

我想使用VC++的一个版本,例如, VC++2003,为我的客户制作一个DLL。如何为不同的VC编译器制作DLL

他们可能使用VC++2005, VC++2008Express, VC++2010Pro,...,他们可能会使用调试设置和发布设置来编译他们的项目。

我可以只为此目的制作一个DLL,还是我必须制作几个对应所有这些可能性的DLL?

+1

如果你坚持一个纯粹的C接口(或COM,如果你喜欢的话),使用它只是一个版本非常简单。 –

+0

您可以制作一个'.DLL'文件,该文件仅导出不使用任​​何依赖于编译器的类型/约定/功能的扁平化C风格函数。还有一个用于C/C++编译器的'.H'文件。然后,每个编译器都有自己的方法,根据需要将DLL导入到项目中,无论是通过创建编译器特定的导入LIB文件,还是提供特定的代码语法来直接加载/访问DLL函数。或者,用户可以简单地调用Win32'LoadLibrary()'和'GetProcAddress()'函数(或利用其编译器的延迟加载功能自动调用这些函数)。 –

+0

调试构建和发布如何构建?我必须提供调试版本.dll和发行版本.dll吗? – JoeChou

回答

0

我只是创建了2个DLL项目。一个用于发布版本,一个用于调试版本。这两个项目使用多字节字符集。 为了测试,我使用Unicode字符集创建了一个EXE项目。 EXE项目的调试和发布版本链接到这两个DLL没有问题。

这不是我已经知道的。我必须更新我学到的东西。

顺便说一下,我使用VC++ 2012 Express来测试上述情况。