| 
					阅读:1133回复:9
				 这是为什么?
					请看下面的程序:
 KMemory Mem(I.Mdl()); // Declare a memory object // Use the memory object to create a pointer to the caller\'s buffer PUCHAR pBuffer = (PUCHAR) Mem.VirtualAddress(); ULONG dwTotalSize = I.ReadSize(CURRENT); // Requested read size ULONG dwBytesRead = 0; // Count of bytes read KIoRange m_ParPortIos; NTSTATUS status1 = m_ParPortIos.Initialize( 0x378, // LPT1 Bus address TRUE, //InCpuIoSpace 8, // Device size TRUE // Map to system space ); if(status1!=STATUS_SUCCESS) { I.Information() = 0; return I.PnpComplete(this, STATUS_SUCCESS); } #define CONTROL 2 //(37A) #define ADDRESS 3 //(37B) #define EDATA 4 //(37C) PUCHAR ppBuffer =new UCHAR[dwTotalSize+1]; for(int i=0;i<dwTotalSize;i++) *(ppBuffer+i)=\'0\'+i; m_ParPortIos.outb(CONTROL,0x80);//½ûÖ¹ÖÐ¶Ï m_ParPortIos.outb(ADDRESS,0); m_ParPortIos.outb(EDATA,ppBuffer,dwTotalSize); m_ParPortIos.inb(EDATA,pBuffer,dwTotalSize); ppBuffer[]的内容为\"0,1,2,3,4,5,6...\",可为什么pBuffer[]的内容为\"FF,FF,FF,FF....\"啊 [编辑 - 7/30/02 by yunfangfan] [编辑 - 7/30/02 by yunfangfan] | |
| 
 | 
| 沙发#发布于:2002-07-29 16:44 
					for(int i=0;i<dwTotalSize;i++)
 ppBuffer=\'0\'+i; ppBuffer是\"01234...\"吗? | |
| 板凳#发布于:2002-07-29 16:45 
					是呀,没错啊				 | |
| 
 | 
| 地板#发布于:2002-07-29 17:29 
					ppBuffer=\'0\'+i;什么语法?
 应该是ppBuffer=\'0\'+i;吧? | |
| 
 | 
| 地下室#发布于:2002-07-29 17:35 
					ppBuffer=\'0\'+i
 ppBuffer应是指针 | |
| 5楼#发布于:2002-07-29 17:38 ppBuffer=\'0\'+i;什么语法? 本来就是嘛,ppBuffer本来是不需要的,我只是想看看读取的数据为什么不对,我用SOFTICE跟踪发现ppBuffer是0,1,2,3,4,5,6...可马上读出到pBuffer就不对了,变成了FF,FF,FF,FF,FF,FF,FF...你说咋会事啊 | |
| 
 | 
| 6楼#发布于:2002-07-29 17:39 
					选上“不使用smileys?”再写代码,看看。				 | |
| 7楼#发布于:2002-07-29 17:41 选上“不使用smileys?”再写代码,看看。 在哪儿选上“不使用smileys?” | |
| 
 | 
| 8楼#发布于:2002-07-29 17:43 
 应写在: for(int i=0;i<dwTotalSize;i++) *(ppBuffer + i)=\'0\'+i; 对你的code表示强烈不解! | |
| 
 | 
| 9楼#发布于:2002-07-29 18:07 
					在回复帖子的下面。				 | |
 
							
 
				 
				
 
				