Я хотел бы спросить, возможно ли создать общую память между qt-приложением и php-скриптом.Общая память между PHP и QT
Я огляделся и вышел со следующими (довольно простыми) идеями:
кварта - сторона
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
unsigned char data[5] = {1,2,3,4,5};
QSharedMemory smem;
smem.setNativeKey("12345");
qDebug() << smem.nativeKey();
if(smem.create(4096)){
qDebug() << "SharedMemory created.";
char *to = (char*)smem.data();
memcpy(to,data,5);
}
return a.exec();
}
PHP - сторона
<?php
$shm_ = shmop_open("12345", "w", 0,0);
if($shm_==FALSE){
echo "SHM Open Failed!";
}else{
$shm_s = shmop_size($shm_);
echo "SHM Open Succ! [Size : ".$shm_s."]<br>";
$data_read = shmop_read($shm_,0,5);
shmop_close($shm_);
}
?>
Но этот подход не удается. shmop_open() говорит: невозможно подключить или создать общую память. (работает xampp on windows/qt ver.5.5)
Заранее благодарим!
Благодарим за быстрый ответ. Мысль QSharedMem строится поверх Windows API. Я уже пробовал комьютер, но хотел ускорить свою задачу, используя разделяемую память. Но ваш пост мне очень помог. Спасибо. –
Я уверен, что QSharedMem «как-то» построен поверх Windows API. Здесь важны детали. Если вы изучаете Windows API, вы видите, что существует несколько способов создания разделяемых областей памяти. Все они как-то связаны, но не обязательно совместимы. – user23573