我有一个恼人的访问冲突问题与Visual Studio 2012年。我有同样的问题,在Visual Studio 2010中,我认为它可能是一个编译器问题,但事实证明,它不是。文件*访问冲突
这里是给我的访问冲突的部分代码:
SDL_Surface *cGraphicsManager::LoadImageFromPak(char *filename, char *img_type)
{
// Load the 'file' to SDL_Surface
SDL_Surface *img = NULL;
char errorname[50];
sprintf(errorname, "Unable to load image %s from pakfile", filename);
FILE *fin = pakfile.open_file(filename);
if(!fin)
{
ErrorLog(errorname);
return NULL;
}
SDL_RWops *rw;
rw = SDL_RWFromFP(fin, 1);
if (!rw)
{
ErrorLog("Erro na linha 213");
return NULL;
}
img = IMG_LoadTyped_RW(rw,0, img_type); // it crashes on this line
if(img == NULL)
ErrorLog("Unable to load image from pakfile.");
SDL_FreeRW(rw);
//pakfile.close_mpk();
//if (img_type == "PNG")
img = add_transparency(img);
return img;
}
它给了我在位置0x00000014访问冲突写。 奇怪的是它在MingW编译器上编译并运行良好,这让我认为它不是错误的代码。 我读了一些关于File *和Dll调用的问题,但我没有找到如何解决这个问题。 我没有链接警告,我已链接所有必要的库。我也在调试模式下运行它并在多线程调试DLL(MDd)中编译。 与MingW相比,Visual Studio编写代码要快得多,而且调试起来也比较容易,我会很感激任何回应。 非常感谢。
好吧,哪行代码产生异常? – OldProgrammer 2013-05-02 16:49:19
如果您实际使用C++而不是C来使用类,那么您可能会遇到更少的麻烦。 – rubenvb 2013-05-02 16:51:05
'img_type'在崩溃时的值是多少? – olevegard 2013-05-02 16:51:54