我正在开发一个跨平台应用程序,它将系统日期和时间更改为指定值.我已经完成了部分Windows
.
如何从C++
程序中设置系统日期和时间Linux
?我正在寻找类似的功能SetSystemTime(SYSTEMTIME &x)
.
据我所知settimeofday()
,对日期没有任何影响,我不确定函数的用法stime()
.我希望mktime()
与我的需要无关.
有谁能够帮我.
我正在使用VS2010编写一个C++程序来读取文本文件并从中提取某些信息.我使用filestream完成了代码,效果很好.但是现在我被要求将文件映射到内存并使用它而不是文件操作.
在内存映射的情况下,我绝对是一个新手.我写的代码的一部分如下.
boost::iostreams::mapped_file_source apifile;
apifile.open(LogFileName,LogFileSize);
if(!apifile.is_open())
return FILE_OPEN_ERROR;
// Get pointer to the data.
PBYTE Buffer = (PBYTE)apifile.data();
while(//read till end of the file)
{
// read a line and check if it contains a specific word
}
Run Code Online (Sandbox Code Playgroud)
在使用FILESTREAM我会用eof
与getline
和string::find
用于执行操作.但我不知道如何使用内存映射文件来做到这一点.
编辑1:
int ProcessLogFile(string file_name)
{
LogFileName = file_name;
apifile.open(LogFileName);//boost::iostreams::mapped_file_source apifile(declared globally)
streamReader.open(apifile, std::ios::binary);//boost::iostreams::stream <boost::iostreams::mapped_file_source> streamReader(declared globally)
streamoff Curr_Offset = 0;
string read_line;
int session_id = 0;
int device_id = 0;
while(!streamReader.eof())
{
\\COLLECT OFFSETS OF …
Run Code Online (Sandbox Code Playgroud) 我KDevelop
用作我的C++
程序的IDE .我的char buffer[1024]
程序中有一个数组.读取数据到缓冲区后,我想手动检查.但是在左侧面板中,我需要读取数组character by character
.有什么方法可以让我一次获得数组的内容?
我创建了一个简单的 Flex 文件来读取并返回文件中的标记。我使用命令flex -c++scanner.l生成了扫描仪文件。当尝试编译生成的 lex.yy.cc 文件时,我收到以下错误:
Fatal error: FlexLexer.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
flex 的 include 文件夹包含 FlexLexer.h 文件。我还尝试将文件复制到 lex.yy.cc 所在的同一文件夹中。错误仍然存在。
我使用的是Windows7。
我怎么解决这个问题。谢谢
我QT
在我的C++
申请中使用.我知道当我使用时QFileDialog
,历史记录会保存在注册表中.假设我QFileDialog
在应用程序中有多个实例.我可以单独保存每个实例的历史记录吗?据我检查,似乎为每个实例更新了相同的注册表项.
我有一个头文件中定义enum
的成员structure
.例如,
struct abc{
enum xyz{
FIRST =1;
SEC =2;
}qw;
};
Run Code Online (Sandbox Code Playgroud)
在我的.cpp
文件中,我已经包含了这个标题.我有一个switch case
在我的文件中,这些enums
将被用作case constants
.
struct abc az;
switch(az.qw){
case FIRST:....
case SEC:...
default:..
}
Run Code Online (Sandbox Code Playgroud)
但我得到错误FIRST is not declared in this scope
.如何克服这个问题.
我为解析文本文件而编写的野牛语法给了我10个移位/减少冲突.parser.output文件对我没有帮助.该文件提供了以下信息:
State 38 conflicts: 5 shift/reduce
State 40 conflicts: 4 shift/reduce
State 46 conflicts: 1 shift/reduce
Grammar
0 $accept: session $end
1 session: boot_data section_start
2 boot_data: head_desc statement head_desc head_desc
3 head_desc: OPEN_TOK BOOT_TOK statement CLOSE_TOK
4 | OPEN_TOK statement CLOSE_TOK
5 statement: word
6 | statement word
7 word: IDENTIFIER
8 | TIME
9 | DATE
10 | DATA
11 section_start: section_details
12 | section_start section_details
13 | section_start head_desc section_details
14 $@1: /* empty */
15 section_details: …
Run Code Online (Sandbox Code Playgroud) 我碰巧在这里看到了以下部分代码.
$Obj.ExecNotificationQueryAsync($hObj, "SELECT * FROM __InstanceCreationEvent WITHIN 0.5 WHERE TargetInstance ISA 'Win32_Process'")
$Obj.ExecNotificationQueryAsync($hObj, "SELECT * FROM __InstanceDeletionEvent WITHIN 0.5 WHERE TargetInstance ISA 'Win32_Process'")
Switch $OB.Path_.Class
Case "__InstanceCreationEvent"
ConsoleWrite("+~>" & _ProcessGetPath($OB.TargetInstance.ProcessID) & @CR)
Case "__InstanceDeletionEvent"
ConsoleWrite("!~>" & $OB.TargetInstance.ProcessID & @CR)
EndSwitch
Run Code Online (Sandbox Code Playgroud)
我使用相同的WQL
查询来监视进程C++
.是否存在类似的东西C++
,我可以知道它是创建还是终止进程.我尝试使用__CLASS
,但它输出为Win32_Process
.我在编码MSVS2010
.
请帮忙.Thankyou
编辑1:添加了WQL查询
hres = pSvc->ExecNotificationQueryAsync(
_bstr_t("WQL"),
_bstr_t("SELECT * "
"FROM __InstanceDeletionEvent WITHIN 1 "
"WHERE TargetInstance ISA 'Win32_Process' "),
WBEM_FLAG_SEND_STATUS,
NULL,
pStubSink);
hres = pSvc->ExecNotificationQueryAsync( …
Run Code Online (Sandbox Code Playgroud) 我必须得到OSVersion
我的Windows8
系统(版本应该是NT 6.2
)在C++应用程序中使用.我尝试使用GetVersion
函数调用.但它给了我一个原始的价值602931718
.是否有某种方法可以获得此处列出的版本或如何将此原始值转换为可读形式?