как подключить библиотеку от имени другова процесса

Тема в разделе "LANGS.C", создана пользователем Garfish, 5 дек 2007.

  1. Garfish

    Garfish New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2007
    Сообщения:
    3
    имеется библиотека dfeed.dll для управления загрузкой данных,которую использует приложение nst.exe, в приложении имеется стандартная библиотека ns.dll в которой реализованы функции для передачи в базу данныз и получения информации о приложении, библиотека dfeed.dll выполняет функции из ns.dll когда приложение запущено!!

    имеется второе приложение term.exe, в котором я вызываю функции из dfeed.dll

    в кратце:
    nst.exe использует - dfeed.dll,
    term.exe использует - dfeed.dll,
    dfeed.dll использует - ns.dll

    проблема в том что когда приложение nst.exe запущено и я из программы term.exe пытаюсь выполнить функции из dfeed.dll которая вызывает функции из библиотеки ns.dll у меня вылетает сообщение "Unhandled exeption in term.exe(ns.dll ):0xc0000005: Access Violation" я так понимаю что программа nst.exe подключила ns.dll к совему процессу, и принимает только вызовы функций в пределах своего контекста процесса, при вызове функций из ns.dll со стронних процессов приводит к такой же ошибке клиенское приложение вылетает с сообщением "Unhandled exeption in term.exe(ns.dll ):0xc0000005: Access Violation"

    подскажите как мне вызвать функции из модулья ns.dll программой term.exe из dfeed.dll в контексте приложения nst.exe?
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Вряд ли. Скорее, ты где-то ошибся в коде и получил AV.
     
  3. Garfish

    Garfish New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2007
    Сообщения:
    3
    нет это ключевой момент!! вызовы функций ns.dll, должны выполняться в контексте процеса nst.exe

    доступ к этой ns.dll я пробовал с помощью прямых вызовов в dll - не работает
    используя COM технологию в dfeed.dll которая работает в функциями ns.dll выдаёт этуже ошибку

    мне как то надо переключить поток в COM и вызывать функцию из контекста приложения основного процесса nst.exe,
    при вызовах этих же функций из ns.dll через dfeed.dll от приложения nst.exe все работает... но только nst.exe управляет человек....
    а мне надо что бы управление происходило из term.exe

    можно конечно повесить таймер в dfeed.dll который будет далть опрос появления новых даных и обрабоатывать их от имени nst.exe, но таймер не лучший вариант..
     
  4. Garfish

    Garfish New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2007
    Сообщения:
    3
    спасибо вопрос решился, я не в том направлении капал,