【发布时间】:2012-09-05 22:55:06
【问题描述】:
我想导入一些 C 代码但覆盖它的 main() 函数。我可以在 Unix 中通过在 C 代码的主要声明前加上 __attribute__((weak)) 来做到这一点,但是,这不会在 Windows 中编译,因为 Strawberry Perl 的 GCC 和 MinGW 的 GCC 都不能识别 __attribute__((weak))。
在线阅读文档,__declspec 似乎功能相似。是否有一个 __declspec 相当于 Unix GCC 的 __attribute__((weak)) 宏?
这是我发布的earlier 问题的更具体版本。
【问题讨论】:
-
为什么不改一下EXE入口点名呢?
-
在 MSVC 链接器选项中,您可以将入口点名称更改为其他名称,并以不同的方式命名您的 REAL 主函数。
-
您能帮我在 Makefile 或代码本身中执行此操作吗?我不想强制代码必须使用 MSVC++。希望我们可以让它在 Cygwin 中工作。
-
在link.exe中,它是/ENTRY。 msdn.microsoft.com/en-us/library/f9t8842e(v=vs.80).aspx 我确信 makefile 可以通过它,虽然我不是 makefile 方面的专家。
-
在编译 scriptedmain.exe、编译 test.exe 时,我是否应该提供
/entry?
标签: c windows unix macros mingw