如何在其他C++控制台应用程序中使用我的DLL?如何添加引用或链接DLL到应用程序中。
另一点,在创建DLL时,VC++向导会给我三个选项:
1. 空的DLL项目 2. 简单的DLL项目 3. 导出某些符号的DLL
根据CP的文章,我选择了第三个选项。(由于DLL被MFC应用程序使用,所以有些难以理解)
我需要始终选择第三个选项吗?其他两个选项的含义是什么?
我不太确定你的问题是什么,但是:
使用哪个选项并不重要,只是向导为您做了什么;如果您使用第三个选项,则向导会在头文件中创建一个类似于这样的位:
#ifdef TEST_EXPORTS
#define TEST_API __declspec(dllexport)
#else
#define TEST_API __declspec(dllimport)
#endif
如果要在Visual Studio的控制台应用程序项目设置中将其指定为依赖项,可以导入DLL,如Alex Farber所述。您必须确保应用程序能够通过将DLL放置在任何指定PATH变量的位置来找到DLL。 您还可以在应用程序中使用LoadLibrary方法(请参见此处的文档http://msdn.microsoft.com/en-us/library/ms684175(VS.85).aspx)动态加载DLL,并使用GetProcAddress函数(请参见http://msdn.microsoft.com/en-us/library/ms683212(VS.85).aspx)调用DLL中导出的方法。
按照以下步骤设置两个项目。 http://msdn.microsoft.com/en-us/library/ms235636.aspx
在这些说明中,新项目被添加到包含DLL的同一解决方案中。但在大多数情况下可能不是这种情况。如果您有两个单独的项目需要处理,则可以按如下稍作修改上述过程。
在DLL项目中,确保已经配置创建了一个DLL文件。要做到这一点,请单击解决方案资源管理器中的项目,然后转到属性。在“配置属性”>>“常规”下,将“配置类型”更改为“动态库(.dll)”。现在,在菜单栏上选择构建、构建解决方案来编译动态链接库。
按照链接中所述,创建其他项目和文件。要在应用程序中使用dll,您必须引用它。为此,请添加从动态库创建的lib文件。lib文件与dll位于同一文件夹中。如果使用Visual Studio处于调试模式,则位于Project>>Folder>>Debug中。如果使用了发布模式,则位于Project Folder>>Release中。要在应用程序中使用lib文件,请转到“项目”>>“属性”>>“链接器”>>“输入”>>“附加依赖项”,并将lib文件的名称添加到列表中(在我的情况下是“AFR24x7.lib”)。
为了确保链接器能够找到.lib文件,将包含.lib文件的目录添加到链接器目录列表中。有两个地方可以这样做:在客户端项目中本地进行(Project>>Properties>>Linker>>General>>Additional library directories),以及全局为所有VC++项目进行(Tools>>Options>>VC++ Directories>>Libraries)。
按照链接中提到的添加include文件。
将创建的DLL文件复制并粘贴到应用程序的发布和调试文件夹中(如果您都在使用它们)。
完成链接中给出的除设置依赖项以外的其他步骤。