小编bod*_*ydo的帖子

编写线程安全的UNIX代码的提示?

在C和C++中编写线程安全的UNIX代码有哪些指导原则?

我只知道几个:

  • 不要使用全局变量
  • 不要使用静态本地存储

其他人在那里?

c unix multithreading thread-safety

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

C++中静态类函数最常见的用途是什么?

我今天正在学习C++中的静态类函数,我无法真正理解它们有什么用处?有没有人有一些很好的例子可以成功应用?

谢谢,Boda Cydo.

c++ static class function

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

C++中的容器失效意味着什么?

我今天invalidation在C++容器的上下文中学到了这个术语.任何人都可以解释它的含义吗?

在循环容器时,似乎不允许以某种方式修改容器的元素.但到底是什么方式?

请帮我理解这个话题.

谢谢,Boda Cydo.

c++ containers invalidation

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

在C++中将智能指针放在类数据(作为类成员)中的正确方法是什么?

假设我有一个Boda班:

class Boda {
    ...
};
Run Code Online (Sandbox Code Playgroud)

cydo在这个类中有一个成员,我想成为一个智能指针(也就是说,我希望它在类被破坏后自动释放).

我正在使用Boost的智能指针,所以我写道:

class Boda {
    boost::shared_ptr<int> cydo;
    public:
        Boda () {
            cydo = boost::shared_ptr<int>(new int(5));
        }
};
Run Code Online (Sandbox Code Playgroud)

这是将智能指针作为类成员的正确用法吗?

谢谢,Boda Cydo.

c++ smart-pointers shared-ptr class-members

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

PHP 5.3.x和PHP 5.2.x之间的区别是什么?我应该使用哪一个?

可能重复:
PHP 5.3更新日志?

我是PHP的新手,我很困惑我应该使用哪个PHP版本:5.3.3(最新的5.3.x)或5.2.14(最新的5.2.x).他们之间有什么区别?

php

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

我是否必须在CComPtr对象上调用Release()方法?

我正在使用SAPI5 API来处理文本到语音.如果我简化我的代码看起来像这样(我删除了错误检查,以尽可能简化它):

int main() {
    CoInitialize(NULL);
    CComPtr<ISpVoice> spVoice;
    spVoice.CoCreateInstance(CLSID_SpVoice);
    ...
    CoUninitialize();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

出于某种奇怪的原因,如果我不调用spVoice.Release(),我的代码会崩溃.所以上面的代码崩溃了,但是这段代码很好用:

int main() {
    CoInitialize(NULL);
    CComPtr<ISpVoice> spVoice;
    spVoice.CoCreateInstance(CLSID_SpVoice);
    ...
    spVoice.Release();
    CoUninitialize();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

CComPtr它超出范围时不会自动释放底层对象吗?

我查看了CComPtr它的实现,它确实调用Release了析构函数本身.

所以我想知道可能出现什么问题,为什么如果我打电话给Release自己,我的代码不会崩溃.但如果我不打电话,Release它会崩溃.

windows com atl smart-pointers sapi

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

在执行`EnumWindows`在Win32 C API中查找窗口时,如何避免使用全局变量?

使用EnumWindows(或FindChildWindows)Win32 API 时如何避免使用全局变量?

我大概有以下代码:

HWND prog_hwnd;

BOOL CALLBACK ProgEnumProc(HWND hwnd, LPARAM lParam) {
    if (...) {
        // found the right hwnd, assign it to prog_hwnd;
        prog_hwnd = hwnd;
        return FALSE;
    }
    return TRUE;
}

void FindProgHwnd()
{
    EnumWindows(ProgEnumProc, 0);
}

int main()
{ 
     FindProgHwnd();
     if (prog_hwnd) {
         // found prog_hwnd, but it's global variable
     }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,为了找到合适的hwnd,我将使用全局变量prog_hwnd.我想避免使用全局变量.有办法吗?

windows winapi global-variables

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

scipy.misc缺失

我刚刚安装了scipy(通过easy_install scipy),但由于某种原因scipy.misc缺失了.

看看这个:

>>> import scipy
>>> scipy
<module 'scipy' from '/home/boda/python-2.7.1/lib/python2.7/site-packages/scipy-0.11.0-py2.7-linux-i686.egg/scipy/__init__.pyc'>
>>> scipy.misc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'misc'
Run Code Online (Sandbox Code Playgroud)

有谁知道会发生什么?有7个谷歌搜索scipy.misc失败的结果.我似乎是第一个发生这种情况的人.

python scipy

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

我可以在迭代它时修改C++容器的值吗?

让我们说我有一个vector<int> vals.我正在迭代它并将值更改为绝对值:

for (vector<int>::iterator it = vals.begin(); it != vals.end(); ++it) {
    if (*it < 0) *it = -*it;
}
Run Code Online (Sandbox Code Playgroud)

这是允许的吗?我没有改变它的大小vector<int>所以我不认为它会失效.我觉得我很安全.我想证实这一点.

c++ containers

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

是否可以在Windows中的另一个应用程序中嵌入一个应用程序?

我在Visual C++ 2008中编写Windows应用程序,我想在其中嵌入Windows附带的计算器(calc.exe).有谁知道这是否可能,如果是的话,你可以给我一些关于如何实现这一目标的提示吗?

windows winapi

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