2013-08-10 2 views
2

У меня, похоже, возникла проблема, когда я продолжаю получать исключение исключенной исключений из-за того, что TheoraVideoManager не инициализируется, в основном я получаю исключение Unhandled в 0x7329E13D (msvcr110.dll) в Win32Project1 .exe: 0xC0000005: Место обнаружения нарушения доступа 0x00194000.TheoraVideoManager wont initialize Необработанное исключение в 0x7329E13D (msvcr110.dll)

вот как я это делаю

#include <theoraplayer/TheoraPlayer.h> 
#include <theoraplayer/TheoraDataSource.h> 
#include "theoraplayer/TheoraVideoManager.h" 
TheoraVideoManager *mgr ; 

/////////////////////////////// //

void init(void) 
{ 
mgr=new TheoraVideoManager(); 
char* x="one.ogg"; 
Texttemp=new THVideo(x); 
} 

////////////

Video.h 
extern TheoraVideoManager *mgr ; 

//////////////

THVideo(char* File){   
    ///// crashes here on clip 
     clip=mgr->createVideoClip(new TheoraMemoryFileDataSource(File)); 
     clip->setAutoRestart(1); 
     clip->pause(); 
     texture->texID=createTexture(nextPow2(clip->getWidth()),nextPow2(clip->getHeight()), textureFormat); 

    } 

/////////////////////////////

ответ

3

Ваш код не заботится, если указатели, которые вы используете, являются init с что-то отличное от NULL. поэтому, если что-то неверно при инициализации вашего менеджера или init клипа, вы используете указатель и сбой без каких-либо подробностей.

Сначала объявите менеджера статическим с нулевым значением.

TheoraVideoManager *mgr = NULL; 

Теперь предположим, что THVideo является классом, а этот клип является членом данных. Во всем вашем коде проверьте, нет ли указателя arn't null, как показано ниже, и выберите исключение, если что-то пойдет не так.

THVideo(const char* File){   
    if (mgr == NULL) 
     { throw "null pointer";} 

    clip=mgr->createVideoClip(new TheoraMemoryFileDataSource(File)); 
    if(clip == NULL) 
    { throw "error on file data source" } 

     ..... 
    } 
+0

жаль последнего ответа я был вычищен ABIT после того, как я отправил и я даже объявить утратившим, не сделал разницу, я пошел, хотя установка мой линкер в против и перекомпоновывается все снова сделал все мои настройки. и он начал работать так, что что-то должно было уйти в моих настройках для libtheora, хотя не уверен, что – user23012

+0

полезно знать ... – alexbuisson