【问题标题】:How to create a DLL and use it with Eclipse for C如何创建 DLL 并将其与 Eclipse for C 一起使用
【发布时间】:2015-08-07 15:43:09
【问题描述】:

我在 Eclipse 中创建了一个 DLL,如下所示: 创建了一个 C-Project -> 共享库 (MinGW) -> 名称:testdll 使用简单的 TestFunction 创建了一个头文件和一个源文件 源文件是这样的:

#include <stdio.h>
#include "test.h"

void write(){
    printf("hallo von der dll\n");
}

然后我构建它并在调试下创建了一个 libtestdll.dll。 到目前为止,这对我来说看起来不错。

现在我创建了一个名为 usedll 的 C-Hello World-Project。 该文件如下所示:

#include <stdio.h>
#include <stdlib.h>
#include "test.h"

int main(void) {
    puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
    write();
    printf("done\n");
    return EXIT_SUCCESS;
}

我在项目 usedll 下创建了一个 lib-Folder。我将 libtestdll.dll 和 test.h 复制到了这个文件夹中。

右键单击项目 usedll -> Properties -> C++Build -> Settings -> GCC C Compiler -> Includes -> 添加(从相同项目 usedll 添加 lib-Folder)

然后在 MinGW C Linker -> Libraries -> Libraries - 我添加了字符串 libdll

在库搜索路径下,我从 usedll-Project 添加了 lib 文件夹。

项目现在构建没有错误,但是当我执行它时,写函数没有产生任何输出。

有人看到我做错了吗?

【问题讨论】:

  • 您可能希望使用比write() 更独特的名称进行测试。
  • 只是出于兴趣 - 你是说添加到 MinGW 库时的 libtestdll 吗?

标签: c eclipse dll


【解决方案1】:

请阅读本文...

http://www.mingw.org/wiki/sampledll

我会在下面添加一个 sn-p,但我觉得你可能没有导出你的函数,阅读上面将解释如何做到这一点(使用 MinGW)。

(这个sn-p直接取自上面的网页)

#ifdef BUILDING_EXAMPLE_DLL
#define EXAMPLE_DLL __declspec(dllexport)
#else
#define EXAMPLE_DLL __declspec(dllimport)
#endif

void __stdcall EXAMPLE_DLL hello(const char *s);

请注意__declspec(dllexport)__declspec(dllimport)的使用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多