为Labview创建DLL

时间:2015-04-07 08:51:51

标签: c gcc dll mingw labview

我有一个c项目,我使用Mingw gcc编译器从中创建.exe。我需要为labview制作一个dll。我已经阅读了各种各样的地方,但似乎没有人知道如何做到这一点。

我添加了编译器设置-shared

enter image description here

然后我能够成功加载dll并在其他C项目和labview中使用这些功能。

然而,所有功能在labview中都可见,我还没有添加

  

__ declspec(dllexport)的

我告诉他在Mingw网站上做的事。

我是否正确地完成了这项工作,或者是否存在可能出错的地方?

1 个答案:

答案 0 :(得分:2)

在gcc中,默认情况下会导出所有符号(函数)。对于大多数指南所基于的Visual Studio,情况并非如此。

但是,可以通过禁用默认导出来强制控制导出的符号。这可以通过传递来完成。

-fvisibility=hidden

每次调用编译器。随后标记导出的函数。

__attribute__ ((dllexport))

就像你使用declspec一样。 这样做有好处,在下一页中有更好的解释。 https://gcc.gnu.org/wiki/Visibility

编辑:我看到使用mingw改变了一点。

  

如果将-no-undefined和--enable-runtime-pseudo-reloc选项传递给链接器,则不必将dllimport或dllexport属性添加到创建DLL的源代码中;默认情况下,所有功能都会自动导入/导出,就像在unices中一样。

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

您是否将任何这些标志传递给链接器?