Visual c++ 配置Visual C++;2010项目使用DLL

Visual c++ 配置Visual C++;2010项目使用DLL,visual-c++,dll,Visual C++,Dll,我已经学会了如何制作DLL,很容易进行单元测试,因为它出现在项目配置中,我的DLL项目,因为它在同一个解决方案文件中 现在我正在启动另一个项目,但我想将我的DLL与它一起使用,或者使用另一个DLL,我应该告诉visual在哪里使用这个或这个DLL 我已将visual配置为使用正确的标题,但如何使其找到DLL文件?您需要将.LIB文件添加到项目中。它应该在编译DLL时生成,并且将与编译的DLL位于同一目录中 在VS2008中,您将打开项目属性,转到链接器、输入、其他依赖项,并在那里指定LIB文件。

我已经学会了如何制作DLL,很容易进行单元测试,因为它出现在项目配置中,我的DLL项目,因为它在同一个解决方案文件中

现在我正在启动另一个项目,但我想将我的DLL与它一起使用,或者使用另一个DLL,我应该告诉visual在哪里使用这个或这个DLL


我已将visual配置为使用正确的标题,但如何使其找到DLL文件?

您需要将.LIB文件添加到项目中。它应该在编译DLL时生成,并且将与编译的DLL位于同一目录中


在VS2008中,您将打开项目属性,转到链接器、输入、其他依赖项,并在那里指定LIB文件。在VS2010中应该非常类似。

您需要将.LIB文件添加到项目中。它应该在编译DLL时生成,并且将与编译的DLL位于同一目录中


在VS2008中,您将打开项目属性,转到链接器、输入、其他依赖项,并在那里指定LIB文件。它在VS2010中应该非常类似。

您可以在Visual Studio中自动执行此操作,以便DLL的用户不会忘记这一点。典型的DLL头文件可能如下所示:

#undef MYEXPORTS
#ifdef BUILDING_MYDLL
#  define MYEXPORTS __declspec(dllexport)
#else
#  define MYEXPORTS __declspec(dllimport)
#  pragma comment(lib, "mydll.lib")
#endif

MYEXPORTS void SomeFunction();
// etc..

#pragma指令将链接器选项注入到.obj文件中,以确保当客户端程序#包含头文件时链接器始终查找.lib。这是一种机制,通过该机制,它始终查找CRT.lib文件的正确版本,即使您从未在“附加依赖项”设置中明确提及它。这在其他方面是非标准的,但使用DLL无论如何都是非标准的。

您可以在Visual Studio中自动执行此操作,以便DLL的用户不会忘记这一点。典型的DLL头文件可能如下所示:

#undef MYEXPORTS
#ifdef BUILDING_MYDLL
#  define MYEXPORTS __declspec(dllexport)
#else
#  define MYEXPORTS __declspec(dllimport)
#  pragma comment(lib, "mydll.lib")
#endif

MYEXPORTS void SomeFunction();
// etc..

#pragma指令将链接器选项注入到.obj文件中,以确保当客户端程序#包含头文件时链接器始终查找.lib。这是一种机制,通过该机制,它始终查找CRT.lib文件的正确版本,即使您从未在“附加依赖项”设置中明确提及它。这在其他方面是非标准的,但使用DLL无论如何都是非标准的。

是UNIX。所以库是“标准的”。什么应该是标准,为什么不是标准?微软又做错了什么?是UNIX。所以库是“标准”的。什么应该是标准,为什么不是标准?微软又做错了什么?我刚刚在某个地方读到有两种不同类型的.lib文件,一种用于链接dll,另一种是纯静态lib。我只是喜欢微软。我只是在某处读到有两种不同类型的.lib文件,一种是用来链接dll的,另一种是普通的静态lib文件。我只是喜欢微软。