我有一个简单的程序来分配内存,并将文件从资源复制到该内存空间,但问题是在调用malloc函数后没有任何异常或错误的程序退出。 我使用VS2010 express,我放了一个断点,当我点击F10(跳过)程序退出。 这是代码:
int main(void){
HRSRC rInfo;
HGLOBAL rPointer;
PVOID filePointer;
int fileSize;
unsigned char *buffer;
rInfo = FindResourceA(0, MAKEINTRESOURCE(101), RT_RCDATA);
if(rInfo == NULL){
return 0;
}
rPointer = LoadResource(NULL, rInfo);
if(rPointer == NULL){
return 0;
}
filePointer = LockResource(rPointer);
if(filePointer == NULL){
return 0;
}
fileSize = SizeofResource(0, rInfo);
if(fileSize == 0){
return 0;
}
buffer = (unsigned char *)malloc(fileSize); // <-- breakpoint here
if(buffer == NULL){
MessageBoxA(0, "Error allocating memory.", "My App", 0);
}else{
MessageBoxA(0, "Allocating memory done without errors.", "My App", 0);
}
memcpy(buffer, stubPointer, stubSize);
}
我已验证SizeofResource(0, rInfo);
返回的大小(1024字节,使用调试器)
我不知道你是否想要更多的信息。如果有,请告诉我。