问题列表 - 第2722页

这一小块互斥代码有什么问题?

// A Mutex allows threads mutually exclusive access to a resource.
//-----------------------------------------------------------------------

class Mutex
{
private:
    CRITICAL_SECTION m_mutex;

public:
     Mutex() { InitializeCriticalSection(&m_mutex); }
    ~Mutex() { DeleteCriticalSection(&m_mutex);     }

    void acquire() { EnterCriticalSection(&m_mutex); }
    void release() { LeaveCriticalSection(&m_mutex); }
};
Run Code Online (Sandbox Code Playgroud)

使用Entrek Codesnitch软件调试和测试任何内存泄漏等,它报告以下错误:

InitializeCriticalSection Error: lpCriticalSection (0x000387d4) points to an invalid 
  memory location (0x00018984) Mutex::Mutex in lockmutex.h, line 29
Run Code Online (Sandbox Code Playgroud)

也许我所有不眠之夜终于到了我的身边.但我不明白它究竟在抱怨什么.有任何想法吗?

c++ mutex critical-section

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

如何确定网页的哪些部分是加密的,哪些不是?

我正在开发一个我没有完全设置的网络服务器,我正在试图弄清楚网页的哪些部分是加密的,哪些不是.Firefox告诉我页面的某些部分是加密的,但我想知道具体是加密的.

ssl

11
推荐指数
2
解决办法
1万
查看次数

C++:程序退出时静态原语是否无效?

假设我有这样的函数:

MyClass &MyFunction(void)
{
  static MyClass *ptr = 0;
  if (ptr == 0)
    ptr = new MyClass;
  return MyClass;
}
Run Code Online (Sandbox Code Playgroud)

问题是在程序退出时间,ptr变量是否会变为无效(即该ptr的内容是否被现有流程清理)?我意识到这个函数泄漏了,但它只是一个简单的例子.

同样的问题也适用于除指针之外的其他原语.如果我有一个静态整数怎么样,该整数的值是否始终在退出时保持不变或由于静态销毁订单问题而变化?

编辑:

为了澄清,我想知道静态指针(或任何其他基本类型,如int或float)的内容实际发生了什么,而不是它指向的内存.例如,假设ptr指向某些内存地址,我想在其他静态类的析构函数中检查它.我可以依赖ptr内容不会改变的事实(即在静态破坏过程中指针值不会被清除)吗?

谢谢,乔

c++ static memory-management

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

如何获取多选ListBox中的最后一个选定项?

如何获取.Net Forms多选ListBox中的最后一个选定项?显然,如果我在列表框中选择一个项目,然后选择另一个项目,则所选项目是第一个项目.

我想获得我选择/取消选择的最后一个元素.

.net listbox winforms

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

Oracle错误:ORA-00905:缺少关键字

执行SQL行:

SELECT * 
  INTO assignment_20081120 
  FROM assignment ;
Run Code Online (Sandbox Code Playgroud)

针对oracle中的数据库备份一个名为assignment的表给出了以下ORACLE错误:ORA-00905:Missing keyword

sql oracle ora-00905

20
推荐指数
2
解决办法
11万
查看次数

我可以阻止vimrc中的设置被插件覆盖吗?

这个问题来自于这个vim搜索问题

我在.vimrc中有一个设置,它将$排除在一个单词的有效部分之外:

set iskeyword-=$
Run Code Online (Sandbox Code Playgroud)

这适用于大多数文件,但不适用于PHP.我认为它被一个php插件覆盖,但由于插件是在.vimrc之后加载的,我无法弄清楚如何覆盖这个设置.我宁愿不打字

:set isk-=$ 
Run Code Online (Sandbox Code Playgroud)

每次我加载一个PHP文件.

有什么建议?

(如果重要的话,Ubuntu 8.04/Vim 7.1.138)

摘要

两个优秀的答案,谢谢!

我和tomalak一起去了,因为它的努力程度较低,并将以下内容添加到我的〜/ .vimrc中

autocmd FileType php setlocal isk-=$
Run Code Online (Sandbox Code Playgroud)

但也要感谢Luc Hermitte.将设置放在〜/ vim/after/ftplugin/php.vim文件中也有效.

:help autocmd:help after-directory也都有帮助

php vim plugins

5
推荐指数
2
解决办法
1519
查看次数

您如何有效跟踪技术债务?

在您的实践中,您如何有效地跟踪和管理技术债务?

是否有您使用的特定指标,如SLOC

您如何直观地向利益相关者和管理层展示您的结果?

你在这个过程中看到了什么好处?

project-management technical-debt

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

.bat文件中的奇怪范围问题

我正在写一个简单的.bat文件,我遇到了一些奇怪的行为.有几个地方我必须做一个简单的if/else,但块内的代码似乎没有正常工作.

这是一个演示错误的简单案例:

@echo off

set MODE=FOOBAR

if "%~1"=="" (
  set MODE=all
  echo mode: %MODE%
) else (
  set MODE=%~1
  echo mode: %MODE%
)
echo mode: %MODE%
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

C:\>test.bat test
mode: FOOBAR
mode: test
Run Code Online (Sandbox Code Playgroud)

为什么代码块中的回声没有得到变量的新值?在我写的实际代码中,我需要构建一些变量并在if/else的范围内引用它们.我可以将其切换为使用标签和gotos而不是if/else,但这似乎并不那么干净.

是什么导致这种行为?代码块中的变量是否存在某种限制?

scope batch-file

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

C的容器类/库

有谁知道任何C容器库?我正在寻找能够提供链接列表,数组,哈希表等标准实现的东西,就像C++ STL一样.主要关注点是:

  1. 客户端代码应该能够为多种不同的数据类型创建容器而无需修改库.
  2. 用于创建和使用容器的界面应该是直观的.

c containers

75
推荐指数
5
解决办法
4万
查看次数

定时器来衡量延迟

在通过TCP测量任何协议中的网络延迟(接收时间ack - 发送时间msg)时,您建议使用什么计时器?为什么?它有什么分辨率?还有什么其他优点/缺点?

可选:它是如何工作的?

可选:你不使用什么计时器,为什么?

我主要关注Windows/C++解决方案,但如果您想对其他系统发表评论,请随意这样做.

(目前我们使用GetTickCount(),但它不是一个非常准确的计时器.)

c++ winapi latency timer

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