C++ 使用创建的DLL文件(从应用程序调用函数)

C++ 使用创建的DLL文件(从应用程序调用函数),c++,c,dll,C++,C,Dll,我有一个愚蠢的问题。我有三个C文件:f1.cf2.cf3.C,其中包含: // f1.c int f1() { return 2; } // f2.c int f2() { return 4; } // f3.c int f3() { return 10; } 当我运行以下命令(我在windows7下使用mingc)时,我已经有3个对象文件: 我创建了dll文件: gcc f1.o f2.o f3.o -o test1.dll -shared 使用DLL导出查看器

我有一个愚蠢的问题。我有三个C文件:f1.cf2.cf3.C,其中包含:

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

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

// f3.c
int f3()
{
    return 10;
}
当我运行以下命令(我在windows7下使用mingc)时,我已经有3个对象文件:

我创建了dll文件:

gcc f1.o f2.o f3.o -o test1.dll -shared
使用DLL导出查看器,我已打开此文件:

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

对不起,我英语不好

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

  • 假设您有了头文件,唯一缺少的就是一个归档文件,链接器需要它来确定DLL提供了什么

    更改此项:

    gcc f1.o f2.o f3.o -o test1.dll -shared gcc f1.o f2.o f3.o-o test1.dll-共享 为此:

    gcc f1.o f2.o f3.o -o test1.dll -shared -Wl,--out-implib,libtest1.a gcc f1.o f2.o f3.o-o test1.dll-shared-Wl,--out implib,libtest1.a 然后,要链接到共享库,将
    -ltest1
    传递到
    gcc

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


    有关更多信息,请参阅。

    跨平台?(你是说像windows和linux这样的跨平台吗?)你必须在不同的平台上重新编译该平台的get-lib。你能告诉我在哪里可以看到一个示例吗?这个过程将在你的编译器文档中描述。步骤2始终特定于编译器,步骤3特定于平台。 gcc f1.o f2.o f3.o -o test1.dll -shared -Wl,--out-implib,libtest1.a