小编dla*_*nod的帖子

0x80020101代表什么?

一个简单的问题,我在微软的错误查找或轻松使用谷歌找不到答案:HRESULT 0x80020101代表什么?

windows

9
推荐指数
2
解决办法
7838
查看次数

非公开功能应该进行单元测试吗?

我正在为我的一些代码编写单元测试,并遇到了一个情况,我有一个具有小暴露接口但内部结构复杂的对象,因为每个公开的方法都会运行大量内部函数,包括对象状态的依赖性.这使得外部接口上的方法很难进行单元测试.

我最初的问题是我是否应该单独测试这些内部函数,因为它们更简单,因此更容易编写测试?我的直觉是肯定的,这导致后续问题,如果是这样,我将如何在C++中这样做呢?

我提出的选项是将这些内部函数从private更改为protected,并使用friend类或inheritence来访问这些内部函数.这是执行此操作的最佳/唯一方法是保留隐藏内部方法的一些语义吗?

c++ unit-testing

8
推荐指数
4
解决办法
1021
查看次数

有哪些工具可用于将C++代码与编码指南进行比较?

存在用于将代码与针对各种语言的自定义指定的编码指南/标准集进行比较的工具(而不是针对常见缺陷的纯静态分析).示例包括用于.Net代码的FxCop和用于Java的CheckStyle,但我想知道人们在C++世界中知道的示例.

一个现有的问题是关于提供像Vera这样的例子的免费工具,但我也想知道可能有的商业工具.

c++ coding-style

8
推荐指数
2
解决办法
3764
查看次数

更改FileSystemObject的当前目录

使用FileSystemObject时,您可以使用路径"."来引用运行脚本的目录.是否可以更改FileSystemObject认为当前目录的内容,以便您可以使用".".其他目录的路径语法?

例:

Set fso = CreateObject("Scripting.FileSystemObject")  
Set f1 = fso.GetFolder(".") ' Returns the current directory  
Set f2 = fso.GetFolder(".\backup") ' Returns the "backup" directory under the current directory
Run Code Online (Sandbox Code Playgroud)

作为简化示例,是否有一种方法来调用fso,以便fso.GetFolder(".")调用返回备份目录?

vbscript

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

如何在Silverlight TextBlock中截断带有省略号的字符串?

如果我为TextBlock显示的字符串太长,它似乎只是继续写过TextBlock的边缘.如果文本不适合所提供的空间,我宁愿使用添加省略号("...")的常用技术.我应该如何在Silverlight中执行此操作?

我发现的引用都使用了Silverlight中没有的TextRenderer类

c# silverlight silverlight-4.0

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

在SQLite中是count(*)的常量时间,如果没有,那么什么是替代?

我正在寻找计算大型(1500万行)表中有多少行的最佳方法.select count(*) from table;根据我在此事上发现的一些较旧的帖子,天真的方式显然是O(n),例如http://osdir.com/ml/sqlite-users/2010-07/msg00437.html.

是否有一个恒定的时间机制来获取此信息,或者失败的是直接select count(*)查询的首选替代方案?

sql sqlite count

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

为什么我的帖子被关键部分阻止而没有被任何东西占据?

我遇到了C++中一个关键部分的问题.我得到一个挂起的窗口,当我转储进程时,我可以看到线程在一个关键部分等待:

  16  Id: b10.b88 Suspend: 1 Teb: 7ffae000 Unfrozen
ChildEBP RetAddr  
0470f158 7c90df3c ntdll!KiFastSystemCallRet
0470f15c 7c91b22b ntdll!NtWaitForSingleObject+0xc
0470f1e4 7c901046 ntdll!RtlpWaitForCriticalSection+0x132
0470f1ec 0415647e ntdll!RtlEnterCriticalSection+0x46
Run Code Online (Sandbox Code Playgroud)

行数据等都表示进入特定的关键部分.唯一的问题是没有其他线程似乎将此关键部分保持打开状态.Windbg的!locks命令没有任何指示,并且转储临界区表示它没有被锁定,因为null所有者和下面结构中的-1 LockCount可以看到它.

0:016> dt _RTL_CRITICAL_SECTION 42c2318
_RTL_CRITICAL_SECTION
   +0x000 DebugInfo        : 0x02c8b318 _RTL_CRITICAL_SECTION_DEBUG
   +0x004 LockCount        : -1
   +0x008 RecursionCount   : -1
   +0x00c OwningThread     : (null) 
   +0x010 LockSemaphore    : 0x00000340 
   +0x014 SpinCount        : 0

0:016> dt _RTL_CRITICAL_SECTION_DEBUG 2c8b318
_RTL_CRITICAL_SECTION_DEBUG
   +0x000 Type             : 0
   +0x002 CreatorBackTraceIndex : 0x2911
   +0x004 CriticalSection  : 0x042c2318 _RTL_CRITICAL_SECTION
   +0x008 ProcessLocksList : _LIST_ENTRY [ 0x2c8b358 - …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading critical-section

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

Visual Studio 2015不会以Windows 10为目标

尽管安装了Windows 10 SDK版本10.0.10586(和更新2),但我的Visual Studio 2015安装不会针对任何Windows 10 SDK版本.

当我打开一个以Windows 10为目标并尝试构建它的解决方案时,我被告知我没有安装该SDK版本.

构建错误

检查目标平台版本,我可以看到没有选择任何10.*版本的选项.

Visual Studio选项

但是看看VS安装,我可以看到Windows 10 SDK版本10.0.10586被标记为已安装.

VS安装选项

Windows 10 SDK版本10.0.10586应该让我以10.0.10240为目标,但是我无法针对它们进行目标/构建.

我试过了:

  • 卸载并重新安装VS2015并选择了两个SDK(耗时但无变化),
  • 修复VS2015安装(耗时但没有变化),
  • 单独卸载10.0.10586并同时安装10.0.10240(始终在10.0.10240上安装错误15605),
  • 安装SDK的独立版本(始终是安装10.0.10586的错误).

windows-10 visual-studio-2015

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

智能指针应如何下降?

智能指针是否可以处理铸造,如果不是,解决此限制的安全方法是什么?

我正在尝试做的一个例子是有两个包含智能指针的STL向量(例如).第一个包含指向基类的智能指针,而第二个包含指向派生类的智能指针.智能指针被引用计数,例如与Boost的shared_ptrs类似的行为,但是手动滚动.我已经包含了一些示例代码,我提供了一个例子:

vector<CBaseSmartPtr> vecBase;
vector<CDerivedSmartPtr> vecDer;
...
CBaseSmartPtr first = vecBase.front();
vecDer.push_back(CDerivedSmartPtr(dynamic_cast<CDerived*>(first.get()));
Run Code Online (Sandbox Code Playgroud)

这似乎还给我,因为我觉得我结束了两个智能指针管理同一个对象.在轨道的某个点上,这可能会导致其中一个释放对象,而另一个仍然保留对它的引用.

我希望的但不认为会起作用的是一个直接的向下投射,同时保持相同的对象,例如

dynamic_cast<CDerivedSmartPtr>(first)
Run Code Online (Sandbox Code Playgroud)

我是否应该更改第二个容器以仅使用CBaseSmartPtr并仅使用向下转换?还有其他解决方案吗?

c++ stl smart-pointers

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

是否可以将自定义元数据添加到 SQLite 列?

是否可以将自定义元数据添加到 SQLite 列?或者我需要将其存储在单独的列或表中?

我正在开发一个数据库,我想以某种形式存储列的单位,即温度列以开尔文为单位。是否可以将其存储为字符串或附加到列的某种形式的自定义元数据?

sqlite metadata

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