2013-07-16 1 views
0

제 3 자용 lib 용 테스트 응용 프로그램을 만들었습니다. 사용하고 있어도 제대로 컴파일되지만 __stdCall WriteDone을 ​​결코 실행하지 않는 것 같습니다. 예제 코드에서QT - 타사 콜백 취소 중입니까?

는이 기능처럼

if(cmcd->BuildISOImage(isoName, &CMCDBurner::WriteDone, NULL) == TRUE) 
    { 
     qDebug() << "inside build iso"; 
    } 

전화 코드를 보이지만, 본인이 아는에 여기를하게하지 않는다.

void __stdcall CMCDBurner::WriteDone(int DeviceId, bool Failed, void *arg) 
{ 
    qDebug() << "inside write done."; 
} 

이 난 그냥 당신이 클래스 CMDCDBurner의 WriteDone의 함수를 정의하려고 실현 전체 테스트 응용 프로그램

#include <QCoreApplication> 
#include "Windows.h" 
#include "MCDBcls.h" 
# 
#include <QDebug> 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    char* cdDestination = "\\"; 
    char* isoName = "C:\\LinearSystems\\AVCommand\\ISO\\aviso.iso"; 

    CMCDBurner* cmcd = new CMCDBurner(); 

    cmcd->ClearAll(); 

    cmcd->InsertFile(cdDestination, "C:\\DLS\\Interviews\\Test_001\\20130515-87701\\interview.xml"); 
    int c = cmcd->Prepare(); 
    int b = cmcd->GetFilesCount(); 

    if(cmcd->BuildISOImage(isoName, &CMCDBurner::WriteDone, NULL) == TRUE) 
    { 
     qDebug() << "inside build iso"; 
    } 

    return a.exec(); 
} 


void __stdcall CMCDBurner::WriteDone(int DeviceId, bool Failed, void *arg) 
{ 
    qDebug() << "inside write done."; 
} 

답변

1

입니다. '(부울 INT, 무효 *) :: WriteDone을 ​​무효 CMCDBurner를': 나는 그것이 오류가 발생하려고 할 때,

void __stdcall WriteDone(int DeviceId, bool Failed, void *arg) 
{ 
    qDebug() << "inside write done."; 
} 
+0

감사 : C2761를 주 법 앞에 기능을 이동하고 CMDCDBurner::을 떠나보십시오 : 회원 함수 재 선언이 허용되지 않습니다 – rreeves

+1

내 편집 된 답변 확인 –

+0

곧 시험해 보겠습니다. – rreeves