链接到我创建的DLL

时间:2014-07-04 07:30:41

标签: c dll static

我正在尝试创建自己的DLL,然后让另一个项目静态加载它。 我的DLL文件包含一个头文件(名为HelloFunc.h):

#include <stdio.h>
extern "C"
{
    _declspec(dllexport) void HelloFromDll();
}

一个c文件(名为HelloFunc.cpp):

#include <stdio.h>
extern "C"
{
    _declspec(dllexport) void HelloFromDll()
    {
        printf("Hello DLL. \n");
    }
}

构建项目后,创建了一个对象文件库(.lib)。 然后,在我的另一个项目中,我尝试静态链接到它。 在链接器中 - &gt;输入 - &gt;额外的依赖关系我添加了我的库(我把它放在我的新项目的目录中)然后在链接器中 - &gt;输入 - &gt;命令行我看到它实际上链接到它。

但是,当我尝试在我的新代码中调用HelloFromDll()函数时,错误表明它未被识别。请注意,我还包含“HelloFunc.h”,但是错误表明无法打开源文件。

我有点失落,不知道我做错了什么。任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:1)

  1. 导入库时,您必须指定__declspec(dllimport)而不是__declspec(dllexport)

  2. 您收到了什么错误消息?

  3. [被修改]

    1. 编译DLL时,指定__declspec(dllexport)。编译导入DLL的应用程序时,请指定__declspec(dllimport)

    2. 问题是编译器找不到HelloFunc.h:只需将HelloFunc.h复制到新项目的目录中。

答案 1 :(得分:0)

检查您的客户&amp;库以相同的模式编译(调试或发布)。 这是常见的瓶颈。