3

我想导入一些 C 代码但覆盖它的main()功能。我可以在 Unix 中通过在 C 代码的主要声明前加上 来做到这一点__attribute__((weak)),但是,这不会在 Windows 中编译,因为 Strawberry Perl 的 GCC 和 MinGW 的 GCC 都不能识别__attribute__((weak)).

在线阅读文档,__declspec似乎功能类似。是否有__declspec等效于 Unix GCC 的__attribute__((weak))宏?

这是我发布的早期问题的更具体版本。

4

2 回答 2

1

如果您愿意使用MSVC,我认为还有另一种方法可以使用。

/*
 * pWeakValue 必须是一个外部 const 变量,它会被别名为
 * pDefaultWeakValue 如果不存在真正的用户定义,感谢
 * 替代名称指令。
 */

extern const char * pWeakValue;
extern const char * pDefaultWeakValue = NULL;

#pragma 注释(链接器,“/alternatename:_pWeakValue=_pDefaultWeakValue”)

有关其他一些选项,请参阅这个旧的 SO 答案

于 2012-09-12T23:56:45.743 回答
0

还有__declspec(selectany)

于 2017-06-01T11:44:36.160 回答