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, который включает вектор?
Задача ещё не решена.
Других решений пока нет …