Пользовательский класс Qt C ++ для копирования и вставки в несколько приложений с использованием QSharedMemory

QT C ++ Можно ли использовать Custom MIME-тип для копирования и вставки в нескольких приложениях?

После того, как я задал этот вопрос, я попытался создать приложение, используя QSharedMemory.

Но когда я пытаюсь скопировать и вставить между А и А ‘

Не могу прочитать память произошла. (В одном приложении работает отлично)

Ниже приведены мой результат и код.

В одном приложении: прекрасно работает

В нескольких приложениях: не может прочитать память

class CustomVector{
public: vector<CustomData*> vecs;
};
sharedMemory.setKey("TestKey");  // setKey to identify
if (sharedMemory.isAttached()) {
if (!sharedMemory.detach()) {
QMessageBox msg;
msg.setText(tr("Unable to detach from shared memory."));
msg.exec();
}
}

CustomVector* from = new CustomVector(); //

// do some work for adding CustomData* data to from using pushback (omit)
int size = sizeof(*from);

if (!sharedMemory.create(size)) { // create sharedmemory by size of from
cout << "Unable to create shared memory segment: " <<     sharedMemory.errorString().toStdString() << endl;
sharedMemory.detach();
sharedMemory.create(size);
cout << "detached" << endl;
}

sharedMemory.lock();
CustomVector* to = (CustomVector*)sharedMemory.data();
memcpy(to, from, sizeof(*from));
sharedMemory.unlock();
sharedMemory.setKey("TestKey");
sharedMemory.attach();

CustomVector* to = new CustomVector();

sharedMemory.lock();
CustomVector* from = (CustomVector*)sharedMemory.data();
memcpy(to,from, sizeof(*from));
sharedMemory.unlock();

sharedMemory.detach();
// and do some work using pasted CustomVector* to (omit)

Как я могу скопировать и вставить несколько приложений, используя класс QSharedMemory и Custom, который включает вектор?

1

Решение

Задача ещё не решена.

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

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

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