小编Mel*_*ius的帖子

VC++ Express Edition中缺少afxwin.h文件

当我尝试将VC++ 2005文件运行到VC++ 2008时:

1>------ Build started: Project: canvas, Configuration: Debug Win32 ------  
1>Compiling...  
1>canvasApp.cpp  
1>c:\documents and settings\ram\my documents\visual studio 2008\demo\stdafx.h(1) : fatal error C1083: Cannot open include file: 'afxwin.h': No such file or directory  
1>canvasFrame.cpp  
1>c:\documents and settings\ram\my documents\visual studio 2008\demo\stdafx.h(1) : fatal error C1083: Cannot open include file: 'afxwin.h': No such file or directory  
1>Generating Code...  
1>Build log was saved at "file://c:\Documents and Settings\ram\My Documents\Visual Studio 2008\demo\Debug\BuildLog.htm"  
1>canvas - 2 error(s), 0 warning(s)  
========== Build: 0 succeeded, 1 failed, …
Run Code Online (Sandbox Code Playgroud)

visual-c++

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

如何在批处理文件中获得等效的dirname()?

我想从.bat文件中获取文件的父目录.所以,给定一个变量"C:\MyDir\MyFile.txt",我想得到"C:\MyDir".换句话说,相当于dirname()典型UNIX环境中的功能.这可能吗?

windows command-line batch-file

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

从C++调用Python脚本并使用其输出

我想从C++调用一个python脚本,并希望将此脚本生成的输出.csv文件重新用于C++.我在main()中试过这个:

std::string filename = "/home/abc/xyz/script.py";
std::string command = "python ";
command += filename;
system(command.c_str());
Run Code Online (Sandbox Code Playgroud)

这会调用并执行python脚本.

print在Python命令正在执行.调用脚本时,屏幕上会打印出一些内容.到现在为止还挺好.但是,它不是创建.csv文件(同一脚本的一部分).

示例:我有一个training.csv包含100个条目的文件.我调用了Python脚本,对脚本几乎没有任何更改,因此training.csv文件现在应该只包含50个条目而不是100个.它被覆盖了.但是,没有这样的事情发生.脚本中的其他命令(print等)工作正常.

training.csv文件是用C++通常使用来读取fstreamgetline.

知道怎么做(使用Linux)吗?

c++ python python-2.7 python-3.x

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

如何停止继续使用GDB

我第一次使用GDB.我跑

$ gdb
Run Code Online (Sandbox Code Playgroud)

然后我就跑了

attach <mypid>
Run Code Online (Sandbox Code Playgroud)

然后我看到我的进程被卡住了(这可能没问题).现在我希望它继续运行,所以我跑了

continue
Run Code Online (Sandbox Code Playgroud)

并且我的过程继续运行但是从这里我陷入困境,如果我想再次观察我当前的堆栈跟踪等等.我无法继续...我试过Ctrl- D等等但是没有任何对我有用...(是只是一个猜测).

c gdb

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

主函数的返回值范围

关于主要回报值范围的标准说法是什么?说只有255?

因为

int main(void){
return 256;
}
echo $? ;  # out 0
Run Code Online (Sandbox Code Playgroud)

c posix c99 exit-code

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

仅为我自己禁用并重新启用地址空间布局随机化

我想在我的系统(Ubuntu Gnu/Linux 2.6.32-41-server)上禁用地址空间布局随机化(ASLR),但是,如果我使用

sysctl -w kernel.randomize_va_space=0
Run Code Online (Sandbox Code Playgroud)

我认为,这种变化会影响系统上的所有用户.(这是真的吗?)我如何限制仅作为用户禁用ASLR对我自己的影响,或者仅限于我调用命令禁用的shell会话?

顺便说一句,我看到我系统的当前(默认)设置是

kernel.randomize_va_space = 2
Run Code Online (Sandbox Code Playgroud)

为什么2而不是1或3?在哪里可以找到有关/ proc/sys设置的数值,范围及其含义的文档?谢谢!

linux bash virtual-address-space aslr sysctl

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

转换目录中所有文件的dos2unix行结尾

Curretly我使用以下命令来更改dos2unix行结尾,但这是for file-y file ..有一种方法可以对目录中的所有文件运行此命令

sed -i 's/\r//' filename
Run Code Online (Sandbox Code Playgroud)

谢谢,

awk sed

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

STL队列的线程安全性

我正在使用队列来在线程之间进行通信.我有一个读者和多个编写器线程.我的问题是,每当我从队列中使用push/front/pop进行读取时,我是否需要锁定队列?我可以做以下事情:

//reader threads
getLock();
get the number of elements from the queue
releaseLock();

int i = 0;
while( i < numOfElements){
    queue.front();
    queue.pop();
    i++
}
Run Code Online (Sandbox Code Playgroud)

我的想法是,我希望减少锁定代码的粒度,因为编写器线程只会写入队列的后面,并且只有一个读取器线程.只要我得到的元素个数,然后我能得到从队列中的元素或者我需要封闭front(),并pop()在锁呢?

c++ multithreading stl

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

Xampp MySQL无法启动 - "尝试启动MySQL服务......"

我刚安装了适用于Windows的XAMPP - 应该是最新版本(XAMPP控制面板v3.2.1).

Apache在端口80和443上运行正常,但MySQL没有启动.当我按下开始按钮时,我收到以下消息:

试图启动MySQL服务......

然后弹出一个窗口,询问我是否要允许这个,这是我想要的.但之后没有任何事情发生.我可以按我想要的次数,但结果相同.

我能用MySQL做什么?

mysql windows apache xampp installation

19
推荐指数
6
解决办法
20万
查看次数

LCOV/GCOV分支覆盖范围,C++生成分支机构

我们正在使用LCOV/GCOV来为我们的项目提供测试覆盖率.最近我们尝试另外启用分支覆盖.但看起来,这只是不会产生我们从高级开发人员视图中预期的结果.

在C++中使用branch-coverage可以在整个地方分支报表.我们怀疑(正如搜索问题所示)主要是异常处理代码创建这些"隐藏分支".GCOV/LCOV似乎没有跳过这些.

我创建了一个小测试项目来显示问题:https://github.com/ghandmann/lcov-branch-coverage-weirdness

目前我们使用的是Ubuntu 16.04.有:

  • gcc v5.4
  • lcov&genhtml v1.12

我们的生产代码是在启用c ++ 11的情况下构建的.最小的例子不是在启用c ++ 11的情况下构建的,但是当我们尝试使用所有不同的选项(c ++标准,优化-fno-exceptions)时,我们没有得到可通过的结果.

有人有想法吗?的窍门?我们使用的是错误的方式吗?这是否 - 如其他地方所述 - 真正预期的行为?

更新:

正如gcc-help邮件列表中指出的那样,这些"隐藏分支"由于异常处理而发生.因此,将-fno-exceptions开关添加到gcc会为"简单"程序产生100%的分支覆盖率.但是当禁用异常时,gcc拒绝编译实际使用异常的代码(例如try-catch,throw).因此,对于实际生产代码,这不是一种选择.看起来,在这种情况下,你必须简单地宣布约50%的覆盖率为新的100%.;)

c++ code-coverage gcov lcov

19
推荐指数
3
解决办法
9920
查看次数