declspec应该放在哪里?

declspec应该放在哪里?,c,shared-libraries,dllexport,C,Shared Libraries,Dllexport,我正在为我维护的库从def文件切换到使用declspec。我已经阅读了SO和MSDN文档中的几个问题。我了解该功能的工作原理。我已经创建了宏,并根据构建环境使用了\u declspec或gcc\uuuuuu属性。宏还可以在\u declspec(dllexport)和\u declspec(dllimport)之间正确选择 在函数定义中使用\u declspec是否有任何危害?\u declspec是否应仅用于功能原型 我更愿意让marco了解功能原型和定义。我使用\u declspec对函数原

我正在为我维护的库从def文件切换到使用declspec。我已经阅读了SO和MSDN文档中的几个问题。我了解该功能的工作原理。我已经创建了宏,并根据构建环境使用了
\u declspec
或gcc
\uuuuuu属性
。宏还可以在
\u declspec(dllexport)
\u declspec(dllimport)
之间正确选择

在函数定义中使用
\u declspec
是否有任何危害?
\u declspec
是否应仅用于功能原型


我更愿意让marco了解功能原型和定义。我使用
\u declspec
对函数原型和定义进行了测试。使用VS在没有警告的情况下编译的库,我可以毫无问题地使用库。

对函数定义没有伤害-sing_udeclspec(dllimport)在函数声明中是可选的,但是如果使用此关键字,编译器会生成更高效的代码。但是,对于导入的可执行文件,必须使用_declspec(dllimport)来访问DLL的公共数据符号和对象。 它主要用于从共享库(DLL)导入符号或将符号导出到共享库(DLL)。Visual C++和GCC编译器都支持Sy-OpDeScript(dLimPurt)和y~(?) 您还可以将其用于变量