我有一個惱人的訪問衝突問題與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