对CreateProcessWithLogonW的未定义引用

时间:2012-03-27 12:39:13

标签: c winapi mingw

所以我一直在研究一个小应用程序,在某些运行中运行一个应用程序作为另一个用户,我用C编写它并使用MinGW GCC编译器来编译和链接它。我的问题是每当我尝试使用WINAPI函数CreateProcessWithLogonW()时,我会收到一条错误,上面写着“对CreateProcessWithLogonW()的未定义引用。”

尽管我在编译它时链接了Advapi32,但

gcc file.c -lAdvApi32 -o filename

2 个答案:

答案 0 :(得分:2)

正确的解决方案是实际#include正确的mingw32标头:即

#include <windows.h>

尽管Anthales提出的解决方案有效,但它不能很好地扩展。

答案 1 :(得分:0)

尝试直接链接到相关的dll,如下所示:

  

gcc file.c%windir%\ system32 \ advapi32.dll -o filename

当您使用交换机-lAdvApi32时,您将从MinGW / lib链接libadvapi32.a。可悲的是,我无法回答为什么这不起作用;也许这个lib已经过时,或者具有完全不同的含义