相关疑难解决方法(0)

有没有办法使用win API获取HRESULT值的字符串表示?

win API中是否有一个函数可用于提取HRESULT值的字符串表示形式?

问题是并非所有返回值都记录在MSDN中,例如,ExecuteInDefaultAppDomain()函数未记录为返回"0x80070002 - 系统找不到指定的文件."但是,确实如此!因此,我想知道是否有一个常用的功能.

c++ windows clr winapi hresult

56
推荐指数
3
解决办法
5万
查看次数

从十六进制数中获取Windows系统错误代码标题/说明

我正在使用p/invoke搞乱一些windows函数.偶尔,我得到的错误代码不是ERROR_SUCCESS(这么奇怪的名字).

有没有办法在程序中查看这些内容?例如,如果我收到错误1017.我可以告诉用户

系统已尝试将文件加载或还原到注册表中,但指定的文件不是注册表文件格式.(ERROR_NOT_REGISTRY_FILE:0x3F9)

代替

错误代码:1017

.net c# windows pinvoke

32
推荐指数
1
解决办法
3万
查看次数

为什么在变量之前将常量放在比较中?

我在一些代码中注意到了一段时间的以下语法:

if( NULL == var){
   //...
}
Run Code Online (Sandbox Code Playgroud)

要么

if( 0 == var){
  //...
}
Run Code Online (Sandbox Code Playgroud)

和类似的事情.

有人可以解释为什么写这个的人选择这种符号而不是常用的var == 0方式)?

这是一种风格问题,还是以某种方式影响性能?

c c++ syntax comparison

18
推荐指数
5
解决办法
6974
查看次数

上次写FILETIME总是返回当前时间

我需要将文件的上次修改时间与存储在数据库中的日期时间进行比较.我最初看了这个问题才开始.

我目前正在获取FILETIME文件的最后一次写入,将其转换为SYSTEMTIME.然后我用它SYSTEMTIME来创建一个TDateTime可以用来比较的对象.但是,FileModifiedDT尽管先前已修改过文件,但变量始终是当前时间.

FILETIME lastWriteTime;

String * FileNamePtr = new String( FileName );

GetFileTime( FileNamePtr, NULL, NULL, &lastWriteTime );

SYSTEMTIME systemTime;
FileTimeToSystemTime( &lastWriteTime, &systemTime );

TDateTime * FileModifiedDT = new TDateTime( systemTime.wYear, systemTime.wMonth,
                                            systemTime.wDay, systemTime.wHour,
                                            systemTime.wMinute, systemTime.wSecond,
                                            systemTime.wMilliseconds );
Run Code Online (Sandbox Code Playgroud)

GetFileTime在某种程度上错过了吗?我还有更好的方法吗?

c++ winapi datetime windows-8.1 c++builder-xe7

1
推荐指数
1
解决办法
236
查看次数

标签 统计

c++ ×3

winapi ×2

windows ×2

.net ×1

c ×1

c# ×1

c++builder-xe7 ×1

clr ×1

comparison ×1

datetime ×1

hresult ×1

pinvoke ×1

syntax ×1

windows-8.1 ×1