如何创建DLL并将其与Eclipse for C一起使用

时间:2015-08-07 06:57:13

标签: c eclipse dll

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

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

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

然后我构建它并在Debug下创建了一个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 - &gt;属性 - &gt; C ++ Build - &gt;设置 - &gt; GCC C编译器 - &gt;包括 - &gt;添加(从同一个项目中添加了lib-Folder)

然后在MinGW C Linker下 - &gt;图书馆 - &gt;库 - 我添加了字符串libdll

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

现在构建的项目没有错误,但是当我执行它时,write-function不会产生任何输出。

有人看到我做错了吗?

1 个答案:

答案 0 :(得分:1)

请阅读此内容......

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

我将在下方添加一个片段,但我觉得您可能没有导出您的功能,阅读上述内容将解释如何执行此操作(使用MinGW)。

(此代码段直接来自上述网页)

#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)