编程错误汇集

1. 请看下面两行代码(VS2010 C++):

	unsigned int DEF_BUFFER_SIZE = 1024;

	char buffer[DEF_BUFFER_SIZE] = {0};


编译,报错,错误在第二行,错误是error C2057: expected constant expression。看来vc里定义一个字符串的时候,中括号里只能写一个直接数字。如果想再中括号里使用字符代号的话就只能用宏定义。 这时候如果在main函数的外边写上语句

#define DEF_BUFFER_SIZE 1024(注意DEF_BUFFER_SIZE 和1024之间没有“=”,结尾没有分号,我就犯过这样低级的错误,呵呵)

这样就不会报错了。

2. 头文件包含时引号和尖括号的区别:

双引号表示先在程序源文件所在目录查找,如果未找到则去系统默认目录查找,通常用于包含程序作者编写的头文件;
尖括号表示只在系统默认目录或者括号内的路径查找,通常用于包含系统中自带的头文件;
3.

#include "stdafx.h"
#include "Windows.h"

int _tmain(int argc, TCHAR *argv[])
{
	STARTUPINFO si;
	ZeroMemory(&si, sizeof(si));
	si.cb = sizeof(si);
	PROCESS_INFORMATION pi;
	ZeroMemory(&pi, sizeof(pi));
	BOOL ret = CreateProcess( L"calc.exe", 
		NULL, //argv[1], //L"D:\\小工具\\calc.exe", 
		NULL, 
		NULL, 
		FALSE, 
		0, 
		NULL, 
		NULL, 
		&si, 
		&pi );
	//WaitForSingleObject(pi.hProcess, INFINITE);
	CloseHandle( pi.hProcess );
	CloseHandle( pi.hThread );
	DWORD dwCode;
	GetExitCodeProcess(pi.hProcess, &dwCode);
	TerminateProcess(pi.hProcess, 0x10);
	GetExitCodeProcess(pi.hProcess, &dwCode);
	return 0;
}

这个实验要说明的问题有:

1)创建一个进程后,如果关闭句柄,则主进程和子进程之间将失去联系,从主进程无法暴力结束子进程。

2)创建一个进程后,主进程可以通过使用WaitForSingleObject等待子进程结束。

3)Terminate函数的第二个参数是用户想设定的某个值,之后可以调用GetExitCodeProcess获取进程的退出值是否是当初设定的退出值。

3. 程序设计当中,有除法“/”或者求模“%”运算时,一定要注意考虑除数为0的情况,否则可能会引发“除零错误”!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值