MinGW库中的windows api函数InitCommonControlsEx()在哪里
Posted
技术标签:
【中文标题】MinGW库中的windows api函数InitCommonControlsEx()在哪里【英文标题】:Where is the windows api function InitCommonControlsEx() in MinGW libraries 【发布时间】:2012-01-27 15:42:11 【问题描述】:我将 MinGW 用于 32 位窗口。我使用 windows 通用控件,所以我必须从 windows API 调用 InitCommonControlsEx()。 MinGW 链接器无法找到此函数,即使我明确链接到 Commctrl.lib(或 minGW .a 版本 libcomctl32.a)。
在哪里可以找到 InitCommonControlsEx() 的正确导入库?
【问题讨论】:
您的意思是链接到 Comctl32.lib,而不是 commctrl.lib? MinGW 系统有不同的命名约定,但我试图找出正确的名称是什么。 正确的名字是libcomctl32.a,如果你做objdump -t libcomctl32.a
就可以看到。您确定这是链接器错误吗?你有什么版本的MinGW?你用什么命令行来编译和链接?
我在 g++ 命令行上指定了“-Wl-llibcomctl32.a”。如果我在我的机器上输入 libcomctl32.a 的完整路径,它就可以工作(例如,库中的函数符号被解析)。库搜索算法有问题,还是我使用了错误的选项?
【参考方案1】:
如果你想链接libcomctl32.a,那么你需要省略'lib' & '.a' 然后将其转换为-l
例子:
-lcomctl32
这仅适用于 gnu gcc 及其衍生产品(Cygwin、Mingw、Clang 等)。 但是在 MSVC 和 C-Builder 上,库名没有被转换,所以你可以直接将 Comctl32.lib 传递给链接器。
【讨论】:
以上是关于MinGW库中的windows api函数InitCommonControlsEx()在哪里的主要内容,如果未能解决你的问题,请参考以下文章