遇到这样一个问题:有个变量inData,其类型需要根据程序中所读取数据的不同类型来定义假如利用
switch(***)
{
case ***:
char* inData=……;
break; case ***:
unsigned char* inData=……;
break; ……
……
} inData……或者用
if(***)
{
char* inData=……;
}
else if(***)
{
unsigned char* inData=……;
}
……
……inData……
都会报错为inData……时,inData没有定义请问应该怎样解决这个问题呢在线等谢谢
switch(***)
{
case ***:
char* inData=……;
break; case ***:
unsigned char* inData=……;
break; ……
……
} inData……或者用
if(***)
{
char* inData=……;
}
else if(***)
{
unsigned char* inData=……;
}
……
……inData……
都会报错为inData……时,inData没有定义请问应该怎样解决这个问题呢在线等谢谢
谢谢
switch (m_VolumeInput->GetDataType())
{
case MITK_CHAR:
{
char* inData =(char*)m_VolumeInput->GetData();
char* outData =(char*)m_VolumeOutput->GetData();
}
break;
case MITK_UNSIGNED_CHAR:
{
unsigned char* inData =(unsigned char*)m_VolumeInput->GetData();
unsigned char* outData =(unsigned char*)m_VolumeOutput->GetData();
}
break;
case MITK_SHORT:
{
short* inData =(short*)m_VolumeInput->GetData();
short* outData =(short*)m_VolumeOutput->GetData();
}
break;
case MITK_UNSIGNED_SHORT:
{
unsigned short* inData =(unsigned short*)m_VolumeInput->GetData();
unsigned short* outData =(unsigned short*)m_VolumeOutput->GetData();
}
break;
case MITK_INT:
{
int* inData =(int*)m_VolumeInput->GetData();
int* outData =(int*)m_VolumeOutput->GetData();
}
break;
case MITK_UNSIGNED_INT:
{
unsigned int* inData =(unsigned int*)m_VolumeInput->GetData();
unsigned int* outData =(unsigned int*)m_VolumeOutput->GetData();
}
break;
case MITK_LONG:
{
long* inData =(long*)m_VolumeInput->GetData();
long* outData =(long*)m_VolumeOutput->GetData();
}
break;
case MITK_UNSIGNED_LONG:
{
unsigned long* inData =(unsigned long*)m_VolumeInput->GetData();
unsigned long* outData =(unsigned long*)m_VolumeOutput->GetData();
}
break;
case MITK_FLOAT:
{
float* inData =(float*)m_VolumeInput->GetData();
float* outData =(float*)m_VolumeOutput->GetData();
}
break;
case MITK_DOUBLE:
{
double* inData =(double*)m_VolumeInput->GetData();
double* outData =(double*)m_VolumeOutput->GetData();
}
break;
} for (int k = 0; k< m_VolumeInput->GetImageNum(); k++)
{
for (int i = 0; i< m_VolumeInput->GetHeight(); i++)
{
for (int j = 0; j< m_VolumeInput->GetWidth(); j++)
{
unsigned long Dst = k*m_VolumeInput->GetWidth()*m_VolumeInput->GetHeight()
+ i*m_VolumeInput->GetWidth() + j; outData[Dst] = inData[Dst];
}
}
}
LPVOID pInData = NULL;
LONG nData[] = {100,200,300,400};
short nSData[] = {1000,2000,3000,4000};
int nType = 1;
int i=0;
while(nType<5){
switch (nType)
{
case 1:
pInData = new LONG[4];
memset(pInData,0,sizeof(LONG)*4);
memcpy(pInData,nData,sizeof(nData));
for(i=0;i<4;i++){
LONG* temp = (LONG*)pInData;
TRACE("pInData=%d\n",*(temp+i));
}
break;
case 2:
pInData = new char[20];
strcpy((char*)pInData,"CHAR");
TRACE("pInData=%s\n",pInData);
break;
case 3:
pInData = new unsigned char[20];
strcpy((char*)pInData,"UNSIGNED_CHAR");
TRACE("pInData=%s\n",pInData);
break;
case 4:
pInData = new short[4];
memset(pInData,0,sizeof(short)*4);
memcpy(pInData,nSData,sizeof(nSData));
for(i=0;i<4;i++){
short* temp = (short*)pInData;
TRACE("pInData=%d\n",*(temp+i));
}
break;
}
if(pInData != NULL)
{
delete []pInData;
}
nType ++;
}