Я ищу способ реализации приложением Qt (может использовать любые методы или библиотеки c ++) доступа / поиска к отображенному файлу памяти, созданному процессом Matlab. Я прочитал несколько Примеры о том, как сделать разделяемую память в определенной среде (то есть 2 процесса, созданные в Matlab или Qt или VS), но никто не говорит о том, как пойти и найти сопоставленный файл из другой программы. Есть способ сделать это?
Вот мой скрипт Matlab, который отображает файл:
filename = fullfile(tempdir, 'test.dat');
[f,~]=fopen(filename,'wb');
fwrite(f,67,'uint8');
fclose(f);
m = memmapfile(filename,'Writable',true,'Format','uint8');
keyboard
Мне не очень интересно писать в отображенный файл из Qt, сейчас я просто хочу узнать, существует ли он, и, возможно, напишу в него в будущем. Единственное, что я мог подумать попробовать в Qt, это посмотреть, существует ли файл, но моя попытка в корне ошибочна, потому что, насколько я понимаю, я хочу знать, отображается ли файл (ищет адрес памяти?), А не существует ли он. на жестком диске.
#include <QCoreApplication>
#include <QSharedMemory>
#include <QFile>
#include <QTextStream>
#include <QString>
void read(QString filename)
{
QFile file(filename);
if (!file.exists()) {
QTextStream(stdout) << "File does not exist!" << endl;
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString filename = "C:/Users/Engineer/AppData/Local/Temp/test.dat";
read(filename);
return a.exec();
}
Кто-нибудь пытался это сделать? Может кто-то указать мне верное направление?
Задача ещё не решена.
Других решений пока нет …