小编P-P*_*P-P的帖子

你会解释锁定顺序吗?

我了解到我应该解锁逆序以锁定订单.例如.

A.lock();
B.lock();
B.unlock();
A.unlock();
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做会发生什么:

A.lock();
B.lock();
A.unlock();
B.unlock();
Run Code Online (Sandbox Code Playgroud)

我尝试制作一个死锁场景,但如果我总是先锁定A然后B,那么我不知道会发生什么样的死锁.你能帮我吗?

concurrency deadlock locking

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

我可以在没有BOM的情况下使用UTF-8导出Excel数据吗?

我通过Excel宏(VBScript)导出Microsoft Excel数据.因为文件是lua脚本,我将其导出为UTF-8.我在Excel中制作UTF-8的唯一方法是使用像这样的adodb.stream

set fileLua = CreateObject("adodb.stream")
fileLua.Type = 2
fileLua.Mode = 3
fileLua.Charset = "UTF-8"
fileLua.Open
fileLua.WriteText("test")
fileLua.SaveToFile("Test.lua")
fileLua.flush
fileLua.Close
Run Code Online (Sandbox Code Playgroud)

我想从Test.lua中消除BOM,但我不知道如何.(因为Test.lua有一些unicode文本,我必须使用UTF-8格式.)

你知道如何在excel文件中制作没有BOM的UTF-8文件吗?提前致谢.

vbscript excel utf-8

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

如何在大型C++项目中检测编译时的瓶颈?

我想减少大型C++项目的编译时间.我尝试使用预编译的头文件,接口等.但在我继续之前,我想知道是否有任何工具可以帮助检测为什么编译时间如此之长.有人建议使用pc-lint,我会试一试. 如何在大型C++项目中检测不必要的#include文件? 但是,如果有其他工具可以分析编译时间并讨论任何提高编译速度的提示,请告诉我.提前致谢.

环境:Microsoft Visual Studio C++ 2008或2010.

c++ compiler-optimization visual-studio-2008 visual-studio

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

我可以在C++中更改静态变量初始化顺序吗?

我在Visual Studio 2015 sp3中使用C++.通过

#pragma init_seg(compiler)
Run Code Online (Sandbox Code Playgroud)

,我首先初始化一些静态变量(到内存管理). https://msdn.microsoft.com/en-us/library/7977wcck.aspx

但是还有

#pragma init_seg(compiler)
Run Code Online (Sandbox Code Playgroud)

在wcerr.cpp(Microsoft Visual Studio 14.0\VC\crt\src\stl\wcerr.cpp)中,所以这些对象在我的对象之前初始化.

我可以wcerr.cpp通过任何编译/链接选项强制我的对象在对象之前被初始化吗?

c++ pragma static-variables visual-studio visual-studio-2015

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

varargs(va_list va_start)不适用于pass-by-reference参数

可能重复:
是否有使用带参考参数的varargs

嗨,我有一个varargs的问题.看看我的代码(Microsoft Visual Studio 2005或2008).

#include <stdarg.h>

struct Test { int a; };

void T1(int n, ...) {
 va_list args;
 va_start(args, n);
 char* p = va_arg(args, char*);
 va_end(args);
}

void T2(Test n, ...) {
 va_list args;
 va_start(args, n);
 char* p = va_arg(args, char*);
 va_end(args);
}

void T3(const Test& n, ...) {
 va_list args;
 va_start(args, n);
 char* p = va_arg(args, char*);  // p corrupt!!
 va_end(args);
}

int _tmain(int argc, _TCHAR* argv[]) {
 const Test t;
 T1(1, "Test1");
 T2(t, "Test2");
 T3(t, …
Run Code Online (Sandbox Code Playgroud)

c++ variadic-functions visual-c++

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

有没有安全的strcmp?

我做了这样的功能:

bool IsSameString(char* p1, char* p2) 
{
     return 0 == strcmp(p1, p2);
}
Run Code Online (Sandbox Code Playgroud)

问题是,有时,错误地传递了不是字符串的参数(意味着p1p2不以空字符终止).然后,strcmp继续比较,直到它到达不可访问的内存并崩溃.有安全版strcmp吗?或者我能否以安全的方式判断p1(和p2)是否为字符串?

c c++ strcmp

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

如何在Perforce中过滤多个用户提交的列表?

如何在perforce中过滤多个用户的"已提交"视图?我想在"已提交"视图中只看到少数(4-5?)人.有一个过滤功能,但过滤器不需要多个用户.那么,我可以在perforce的"已提交"视图中指定多个用户吗?

perforce p4v

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

在Console应用程序中防止内存工作集最小化?

我想在Console应用程序中防止内存工作集最小化.在Windows应用程序中,我可以通过覆盖SC_MINIMIZE消息来完成.但是,如何在控制台应用程序中拦截SC_MINIMIZE?或者,我可以通过其他方式防止内存工作集最小化吗?

我使用Visual Studio 2005 C++.有人有一些问题,解决方案并不令人满意.:( http://www.eggheadcafe.com/software/aspnet/30953826/working-set-and-console-a.aspx

提前致谢.

c++ memory visual-studio

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

什么是'丘吉尔式的淘汰赛'?

我读过xUnit测试模式. http://martinfowler.com/books.html 马丁福勒的写作中有'丘吉尔式的敲门'表达......

如果你去junit.org,你会看到我的一句话:"从来没有在软件开发领域有那么多欠这么多行代码".JUnit被批评为一件小事,任何合理的程序员都可以在周末制作出来.这是事实,但完全忽略了这一点.JUnit很重要,值得丘吉尔解读,因为这个小工具的存在对许多程序员的根本转变至关重要.将测试转移到编程的前端和中心部分的转变.人们之前曾提倡它,但JUnit使它发生的重要性超过了其他任何事情.

我没有搜索"丘吉尔式的淘汰赛".你能帮我知道这是什么意思吗?提前致谢.

design-patterns xunit

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

同班,不同大小......?

看到代码,然后你会明白我的困惑.

Test.h

class Test {
public:
#ifndef HIDE_VARIABLE
    int m_Test[10];
#endif
};
Run Code Online (Sandbox Code Playgroud)

Aho.h

class Test;

int GetSizeA();
Test* GetNewTestA();
Run Code Online (Sandbox Code Playgroud)

Aho.cpp

//#define HIDE_VARIABLE
#include "Test.h"
#include "Aho.h"

int GetSizeA() { return sizeof(Test); }
Test* GetNewTestA() { return new Test(); }
Run Code Online (Sandbox Code Playgroud)

Bho.h

class Test;

int GetSizeB();
Test* GetNewTestB();
Run Code Online (Sandbox Code Playgroud)

Bho.cpp

#define HIDE_VARIABLE   // important!
#include "Test.h"
#include "Bho.h"

int GetSizeB() { return sizeof(Test); }
Test* GetNewTestB() { return new Test(); }
Run Code Online (Sandbox Code Playgroud)

TestPrj.cpp

#include "Aho.h"
#include "Bho.h"
#include "Test.h"

int _tmain(int argc, _TCHAR* argv[]) …
Run Code Online (Sandbox Code Playgroud)

c++ visual-studio-2005 visual-c++

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

我可以在STL中禁用min,max吗?

我使用一个非常重要且不可触及的库.问题是库声明了min,max函数,所以当我在项目中包含STL头时,它们会发生冲突.我想在STL中禁用min,max函数(如#define NOMNMAX),如果可以的话.如果我不能,那将是什么解决方案?

重要提示:抱歉,这不是宏.两个函数是模板函数.

喜欢

template<T>
T min(const T& a, const T& b) { a < b ? a : b; }
Run Code Online (Sandbox Code Playgroud)

提前致谢.

c++ stl

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