我正在重构一些旧的代码,并发现很少的结构包含零长度数组(如下).当然,由pragma压制的警告,但我没有通过包含这种结构的"新"结构创建(错误2233).数组'byData'用作指针,但为什么不使用指针呢?或长度为1的数组?当然,没有添加任何评论让我喜欢这个过程...任何使用这种东西的原因?重构那些的任何建议?
struct someData
{
int nData;
BYTE byData[0];
}
Run Code Online (Sandbox Code Playgroud)
NB它是C++,Windows XP,VS 2003
假设我有VMWARE工作站(访客Windows并由Windows托管).有没有办法接收托管机器的主机名?并且不需要在主机上更改内容,例如在此链接中.
比如说,我想要一个工具(或脚本?)来获取项目(或.h文件)并构建包含在其中的“包含”的可搜索树(包含到包含到等等)。有这样的东西存在吗?我应该自己写这个吗[当然我是:),但可能有人已经写了它或者可能知道如何得到它]?
从服务应用程序调用时,Windows API :: FindWindow函数失败.GetLastError()也返回0(成功?).这是一些特权\访问权限问题吗?你认为这是设计问题,我应该使用另一种IPC方法吗?
实现CLogClass以进行体面的日志记录后我也定义了宏,但它只适用于一个参数......
class CLogClass
{
public:
static void DoLog(LPCTSTR sMessage, ...);
};
#define DebugLog(sMessage, x) ClogClass::DoLog(__FILE__, __LINE__, sMessage, x)
Run Code Online (Sandbox Code Playgroud)
好吧,当用超过2个参数调用它时会失败:( ...它是否可以避免它?它能以某种方式转换为模板吗?
编辑:Variadic宏在VS 2005中引入(但我目前在VS 2003 ...).有什么建议吗?
我不确定我是否完全理解TryGet方法。
它什么false时候完全返回——当内部锁被锁定时,这意味着while如果我想获得价值就应该使用(知道它在那里)?
或者这while以某种方式嵌入到这个函数内部并返回false手段 -字典中没有这样的键?
注意。这是否适用于ConcurrentDictionary-TryAdd等的所有其他方法?