急求答案,在线
njtzj 2006-05-11 10:36:41 typedef struct
{
char ModalNumber[39];
char SerialNumber[19];
char ControlNum[7];
long DriveType;
long Cylinders;
long Heads;
long Sectors;
}DRIVER_INFO_OK ;
typedef long (WINAPI * getHardDriveComputerID)();
typedef long (WINAPI * ReadPhysicalDrive)(int begin,DRIVER_INFO_OK* x,int len);
jstring WindowsTojstring( JNIEnv* env, char* str );
char* jstringToWindows( JNIEnv *env, jstring jstr);
//获得硬盘ID号
JNIEXPORT jlong JNICALL Java_com_DiskID_getDiskID (JNIEnv * env, jobject)
{
HINSTANCE hDll;
getHardDriveComputerID GetID;
ReadPhysicalDrive RedPhy;
hDll = LoadLibrary("DiskID32.dll");
if (hDll != NULL)
{
RedPhy= (ReadPhysicalDrive)GetProcAddress(hDll,"ReadPhysicalDrive");
DRIVER_INFO_OK x;
MessageBox(NULL,"ABC","ABC",NULL);
RedPhy(0,&x,256);
GetID = (getHardDriveComputerID)GetProcAddress(hDll,"getHardDriveComputerID");
long num=GetID();
FreeLibrary(hDll);
return num;
}
return NULL;
}
我使用了DISKID.DLL这控件,在 RedPhy(0,&x,256);处出错,不知道何原因,求解!