| 
			 
					阅读:985回复:7
				 
				各位,请看这段代码
					/*下面这段代码整苦了我,我反复测试了很多次,每次动态装载后都会以蓝屏告终,百思不得其解,大虾们帮助我啊!*/
 
							BOOL MyfpDevice::OnSysDynamicDeviceInit() { if(NULL==(PrevHookProc=IFSMgr_InstallFileSystemApiHook(HookProc))) return FALSE; return TRUE; } DWORD MyfpDevice::OnW32DeviceIoControl(PIOCTLPARAMS pDIOCParams) { return 0; } int _cdecl HookProc(pIFSFunc FSDFnAddr, int FunctionNum, int Drive, int ResourceFlags, int CodePage, pioreq pir) { #ifdef DEBUG struct _QWORD Result; char ch[MAX_PATH+1]; strcpy(ch,NULL); if(NULL!=pir && NULL!=pir->ir_ppath) { UniToBCSPath((unsigned char *)ch, pir->ir_ppath->pp_elements, MAX_PATH, CodePage, &Result); ch[Result.ddLower]=\'\\0\'; } dout << ch <<endl; #endif return (*PrevHookProc)(FSDFnAddr, FunctionNum, Drive, ResourceFlags, CodePage, pir); } :o  | 
	|
					
						
						
						
						
  | 
	
| 
			 沙发# 
								发布于:2003-01-15 08:31				
			
					strcpy(ch,NULL);这句是什么意思?				 
							 | 
	|
| 
			 板凳# 
								发布于:2003-01-15 14:02				
			
					以下这句你见过吧:
 
							char *a=NULL; char b[50]; strcpy(b,a); <=> strcpy(b,NULL); 编译无警告  | 
	|
					
						
  | 
	
| 
			 地板# 
								发布于:2003-01-16 07:58				
			
					我觉得它是一个逻辑错,但编译不会有错				 
							 | 
	|
| 
			 地下室# 
								发布于:2003-01-16 08:13				
			
					你的这段代码在调试时会出错,release版估计不会有错				 
							 | 
	|
| 
			 5楼# 
								发布于:2003-01-16 08:59				
			
					strpcy(a,NULL);就算逻辑有误,但把它视着:strcpy(a,\"\");编译时也不会有问题吧;				 
							 | 
	|
					
						
  | 
	
| 
			 6楼# 
								发布于:2003-01-16 10:38				
			
					strpcy(a,NULL);strcpy(a,\"\");这两句有本质的区别,“”是一个空串,但null作为一个串什么也不是!				 
							 | 
	|
| 
			 7楼# 
								发布于:2003-01-16 12:41				
			
					NULL==0==\'\\0\'==\"\"  虽然在逻辑上有些不对,但值相等。
 
							无论如何,主要原因不在这句,就连把这句删除掉或者替换掉结果也一样。  | 
	|
					
						
  |