首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GetUserName在Win64下

GetUserName在Win64下
EN

Stack Overflow用户
提问于 2010-11-20 10:57:37
回答 1查看 5.1K关注 0票数 0

我试图用Intel icl编译器在MINGW/64下编译一个C程序。该程序使用以下代码:

代码语言:javascript
复制
#include <Userenv.h>
HANDLE process;
HANLDE token;
GetUserProfileDirectory(process, TOKEN_QUERY, &ptoken)

我使用以下编译命令:

代码语言:javascript
复制
$ icl -g -DMINGW32 -DTESTMAIN user.c -o user -UserEnv.Lib

我正在链接到Microsoft中的UserEnv.Lib。

英特尔(R) C++英特尔(R) 64编译器XE用于运行在Intel(R) 64、Microsoft (R)增量链接器版本9.00.21022.08 -out:user.exe user.obj上的应用程序

代码语言:javascript
复制
user.obj : error LNK2019: unresolved external symbol __imp_GetUserProfileDirectoryA referenced in function main

知道怎么解决这个问题吗?

解决方案:

解决办法是使用

/link /c/Program\ Files/Microsoft\ SDKs/Windows/v6.0A/Lib/x64/UserEnv.Lib /c/Program\ Files/Microsoft\ SDKs/Windows/v6.0A/Lib/x64/A

我将文件UserEnv.lib从Microsoft (x64,6.0)复制到当前工作目录中,并使用

$ icl test.c -DMINGW32 ./UserEnv.Lib

LNK2019:函数main test.obj中引用的未解析外部符号__imp_GetUserNameA : LNK2019:函数main test.obj中引用的未解析外部符号__imp_OpenProcessToken :错误LNK2019:未解析外部符号-

而我仍然得到了那些未解决的符号。

奥拉夫

EN

回答 1

Stack Overflow用户

发布于 2010-11-20 12:07:38

您需要将userenv.lib添加到输入库中,链接器才能看到GetUserProfileDirectory()

编辑:--我已经有一段时间没有接触到Intel编译器了,但是IIRC您应该使用/link来引入链接器选项:

代码语言:javascript
复制
$ icl test.c -DMINGW32 /link ./UserEnv.Lib
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4232365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档