0

私が使用しているサードパーティのライブラリ用のテスト アプリケーションを作成しました。コンパイルは問題なく行われますが、__stdCall WriteDone にはヒットしないようです。

サンプルコードから、この関数のように見えます

    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.";
}

これはテストアプリケーション全体です

#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.";
}
4

1 に答える 1

1

class の WriteDone 関数を定義しようとしていることに気付きましたCMDCDBurner。関数をメイン メソッドの前に移動し、次を省略してみてくださいCMDCDBurner::

void __stdcall WriteDone(int DeviceId, bool Failed, void *arg)
{
    qDebug() << "inside write done.";
}
于 2013-07-16T06:41:06.907 に答える