windows上的动态共享对象等价

windows上的动态共享对象等价,windows,object,dynamic,dll,shared,Windows,Object,Dynamic,Dll,Shared,Linux上的动态共享对象库大约等于Windows中的dll。这就是我在网上找到的。但也有一些不同之处,在这里进行了解释: 然后,我感到困惑: 在linux中,可以使用-shared创建DSO库,然后使用-lmylib链接。但在windows中,情况就不同了。我们必须在代码中添加dllexport。只有“导出的”部分可以链接(如果我是正确的)。是否有一个选项可以使windows dll链接而不添加dllexport?(我试图创建一个只包含函数而没有dllexport的dll,但到目前为止,我能说

Linux上的动态共享对象库大约等于Windows中的dll。这就是我在网上找到的。但也有一些不同之处,在这里进行了解释:

然后,我感到困惑:

  • 在linux中,可以使用-shared创建DSO库,然后使用-lmylib链接。但在windows中,情况就不同了。我们必须在代码中添加dllexport。只有“导出的”部分可以链接(如果我是正确的)。是否有一个选项可以使windows dll链接而不添加dllexport?(我试图创建一个只包含函数而没有dllexport的dll,但到目前为止,我能说的是,没有dllexport的dll是无用的,对吗?)

  • 明哥是干什么的?我认为在我使用它的时候它可以创建DLL。但现在我认为MinGW gcc-shared创建的库是另一回事。是windows版本库吗?MSVS/intel编译器可以做类似的事情吗

  • 我问这些问题是因为跨平台问题。例如,可以在windows计算机上编译linux代码而不进行任何更改。但是,如果希望使用与.so等效的代码(使用MSV编译)创建dll,那么不修改代码(添加dllexport)是不可能的。我说得对吗

    是否有一个选项可以使windows dll在不添加 dllexport

    不,您需要
    dllexport

    对不起,我不知道你说的第二个问题是什么意思

    我说得对吗


    如果我错了,请纠正我,但你在重复你的第一个问题。所以你是对的,你不能那样做。您需要
    dllexport

    谢谢OJ。那么使用静态库将是唯一的选择,因为exe的大小无关紧要。如果您想在没有dllexports的情况下轻松共享代码,那么是的,这似乎是您最好的选择。