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

标签 c eclipse dll

我在 eclipse 中创建了一个 DLL,如下所示: 创建了一个 C 项目 -> 共享库 (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 -> 属性 -> C++Build -> 设置 -> GCC C 编译器 -> 包含 -> 添加(从同一项目 usedll 添加 lib 文件夹)

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

在 Library Search Path 下,我添加了 usedll-Project 中的 lib 文件夹。

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

有人看到我做错了吗?

最佳答案

请阅读此...

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)

关于c - 如何创建 DLL 并将其与 Eclipse for C 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31871456/

相关文章:

c - 转换为 void 指针时,表达式必须是指向完整对象类型的指针

c# - 如何从 C# 调用 C++ API

vb.net - 如何在 VB.net 中为扩展方法创建 DLL?

android - 无法将库添加到 Eclipse 中的 Android 项目

java - Eclipse插件: Get the class name on user's click/selection

c++ - 如何从 DLL 二进制文件中删除函数

c - 像 PVS-Studio 之类的工具用于 C 项目中的静态代码分析?

c - 如何在应用程序运行时在 Windows 中使用 MSDN 函数记录时区更改

c - STM32闪烁的LED错误寄存器?

java - 在 Eclipse 中获取我的项目的库