jjzjj

getLastError

全部标签

c++ - 系统调用 GetLastError() 不返回错误

在golang中syscall.GetLastError()不返回最后一个错误。看下面的例子ifhandle:=_OpenSCManager(machineNamePtr,databaseNamePtr,desiredAccess);handle==nil{iferr:=syscall.GetLastError();err!=nil{returnInvalidServiceDatabaseHandleHandle,ServiceErrno(err.(syscall.Errno))}}err始终为nil。假设machineNamePtr是一台不存在的机器。使用C++测试了相同的代码,Ge

c++ - 从另一个系统访问命名管道时拒绝访问

我有一个命名管道,当我使用在我的系统上运行的客户端访问它时它工作正常客户端尝试使用以下代码打开文件:LPTSTRlpszPipename=TEXT("\\\\smyServerName\\pipe\\iPipe01");hPipe=CreateFile(lpszPipename,//pipenameGENERIC_READ|//readandwriteaccessGENERIC_WRITE,0,//nosharingNULL,//defaultsecurityattributesOPEN_EXISTING,//opensexistingpipe0,//defaultattributes

asp.net - 调试诊断工具 - 无法修改规则 - "failed to start dbgsvc getlasterror returns 0x0000422"

我试图使用Microsoft的调试诊断工具(DebugDiag)来识别w3wp.exe/clr.dll中发生的应用程序事件日志错误,如thisanswer中所述.但是,当我尝试添加新规则时,出现错误对话框:Cannotconnecttoservice.FailedtostartDbgSVC.GetLastErrorreturns0x00000422如何才能成功添加规则? 最佳答案 此错误表明DebugDiagnosticService服务被禁用。修复:开始>运行>services.msc在出现的“服务”对话框中,在列表中找到“调试诊

windows - OpenEvent,getlasterror 返回 2

我正在构建WindowsUMDF2.0驱动程序,当我调用OpenEvent时出现错误2。任何帮助都将非常有用。下面是我的代码HANDLEuserEvent=OpenEvent(EVENT_ALL_ACCESS,FALSE,myUserEvent);标准::计数 最佳答案 Windows7,8需要安全描述符,而wec不需要。它们的默认安全描述符不同。此外,如果您的事件要由不同的用户或提升的进程访问,您需要将其设为全局事件,否则将无法访问它。 关于windows-OpenEvent,getl

windows - 是否存在函数 CreateFile 返回 INVALID_HANDLE_VALUE 而 GetLastError() 返回 ERROR_ALREADY_EXISTS 的情况

我在MSDN上搜索了一下HANDLEWINAPICreateFile(_In_LPCTSTRlpFileName,_In_DWORDdwDesiredAccess,_In_DWORDdwShareMode,_In_opt_LPSECURITY_ATTRIBUTESlpSecurityAttributes,_In_DWORDdwCreationDisposition,_In_DWORDdwFlagsAndAttributes,_In_opt_HANDLEhTemplateFile);如果dwCreationDisposition==CREATE_ALWAYS或OPEN_ALWAYS,它表

c++ - 为什么 GetLastError() 在调试期间与 "normal"执行期间返回不同的代码?

try{pConnect=sess->GetFtpConnection(ftpArgs.host,ftpArgs.userName,ftpArgs.password,port,FALSE);}catch(CInternetException*pEx){loginErrCode=GetLastError();printf("loginErrCode:%d\n",loginErrCode);if(loginErrCode==12013){printf("Incorrectusername!\n");exit(0);}elseif(loginErrCode==12014){printf("I

windows - 获取上一个错误 127

为什么下面的代码总是打印出127(“找不到指定的过程。”),即使它找到“firefox.exe”并成功终止??#include#include#includeusingnamespacestd;intmain(int,char*[]){PROCESSENTRY32entry;entry.dwSize=sizeof(PROCESSENTRY32);HANDLEsnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);if(Process32First(snapshot,&entry)==TRUE){while(Process32

c++ - 为什么 LogonUserW 失败并显示错误代码 183 (ERROR_ALREADY_EXISTS)

我在LogonUserW失败后立即调用GetLastError()来检查错误代码,它总是183,但我不知道为什么LogonUserW会以这样的值失败。查了msdn,发现183(ERROR_ALREADY_EXISTS)的意思是“当那个文件已经存在时无法创建文件”,那么LogonUserW会创建什么文件呢?任何人都可以在这里阐明一些问题吗?if(LogonUserW(uniUserName,uniDomainName,uniPassword,LOGON32_LOGON_NETWORK,LOGON32_PROVIDER_DEFAULT,&token)){//dosomethingwhens

c - RegCreateKeyEx() 和 GetLastError()

为什么是RegCreateKeyEx()返回LONG,而不是设置DWORD错误代码来自SetLastError()?转换它的LONG对我来说安全吗?将值返回给DWORD然后用SetLastError()将其设置为全局错误代码?http://msdn.microsoft.com/en-us/library/windows/desktop/ms724844(v=vs.85).aspx 最佳答案 WhyisitthatRegCreateKeyEx()returnsaLONG,insteadofsettingaDWORDerrorcodev

c++ - 涉及 `std::string` 的编译导致 Windows 错误状态

最小的例子:#include#includeintmain(int/*argc*/,char*/*argv*/[]){HANDLEhandle=GetStdHandle(STD_OUTPUT_HANDLE);//Behaviorthesame,withorwithout.DWORDerr=GetLastError();std::stringstr;return(int)err;//returns127ifflineaboveuncommented,0iffcommented}此程序返回127,对应于ERROR_PROC_NOT_FOUND(“找不到指定的过程。”)。请注意,err是在s