У меня проблема с моими приложениями - win32. У меня есть клиент и сервер (ничего не связано с сетью, просто именами). Клиентское приложение isnt приложение, это плагин, работающий в основном приложении. Серверное приложение является внешним приложением и имеет закрытый исходный код и может выполнять функции обратного вызова от клиента. Клиент (плагин) взаимодействует с MainApplication через «Link» (указатель на структуру с функциями) и может отправлять указатели на определенные определенные структуры (уже заполненные), например: структура с сообщением, датой и именем. Я могу просто изменить исходный код плагина. Теперь проблема, вызывающая вызов сервера (например, полученное сообщение), создает и заполняет там «структуру сообщений», а затем использует ссылку для отправки указателя на эту структуру. Ошибка MainApplication, потому что не может прочитать этот блок памяти.Проблема с доступом к памяти
Функция вызова сервера-> создание и наполнение структуры-> указатель отправки для этой структуры в MainApplication через Link-> MainApplication пытается считывать аддоны памяти и сбой BAM.
Если я сделаю это вручную, из плагина он работает.
Как отправить эту структуру в основное приложение? MainApplication может получать только адрес в структуре. Может быть, немного запутался, но вы должны понять проблему.
Просто, чтобы быть ясным - «клиент» - это плагин работает в том же процессе, что и «сервер», верно? Кроме того, вы должны опубликовать хотя бы * некоторый * код, такой как структура, заполняемая клиентом, и как клиент отправляет сообщение и/или результат на сервер. –
Отдельные процессы имеют отдельные адресные пространства памяти, если вы явно не используете области разделяемой памяти. Ты? –
MainApplication and Server - это два отдельных приложения. Клиент - это плагин, работающий в том же процессе, что и MainApplication. Структура структуры не требуется. Если бы я использовал общую память, MainApplication мог бы прочитать, что или просто клиент (плагин) мог бы? – user1112008