使用创建的DLL文件(来自应用程序的调用函数)

时间:2011-09-09 08:38:48

标签: c++ c dll

我有一个虚假的问题。我有三个C文件:f1.c f2.c f3.c,其中包含:

// f1.c
int f1()
{
    return 2;
}

// f2.c
int f2()
{
    return 4;
}

// f3.c
int f3()
{
    return 10;
}

我已经有3个目标文件,当我运行以下命令时(我在windows7下使用mingc):

gcc -c f1.c f2.c f3.c

我创建了dll文件:

gcc f1.o f2.o f3.o -o test1.dll -shared

使用DLL导出查看器我打开了这个文件: enter image description here

如何在我的应用程序中使用此文件(跨平台)?我如何调用functrion f1,f2,f3?

抱歉我的英文不好

2 个答案:

答案 0 :(得分:2)

假设你有标题,你唯一缺少的是A档案,链接器需要它来弄清楚DLL提供了什么。

改变这个:

gcc f1.o f2.o f3.o -o test1.dll -shared

对此:

gcc f1.o f2.o f3.o -o test1.dll -shared -Wl,--out-implib,libtest1.a

然后,要与共享库关联,请将-ltest1传递给gcc

您仍需要为每个平台和体系结构(x86,AMD64,IA64等)重新编译库。 Windows使用DLL,但Linux使用共享对象,例如。

有关详细信息,请参阅http://www.mingw.org/wiki/sampleDLL

答案 1 :(得分:1)

  1. 在调用程序中包含头文件。
  2. 将调用程序链接到与库关联的.lib文件。
  3. 确保库位于库搜索路径中。