QT — Сторонний обратный вызов не перезванивает?

Я создал тестовое приложение для сторонней библиотеки, которую я использую, она прекрасно компилируется, но, похоже, никогда не ударит __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.";
}

0

Решение

Я только что понял, что вы пытаетесь определить функцию WriteDone для класса CMDCDBurner,
Попробуйте переместить функцию перед основным методом и не указывать CMDCDBurner:::

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]