Загрузка…





  • Сообщения   Поиск
  • ksili19.11.2009 20:29   
    Запуск 64-битного потока в 32-битном приложении

    Есть ли возможность запуска 64-битного потока в 32-битном приложении? Не процесса, функцией CreateProcess, а именно потока? Я полагаю, скорее всего нет, но вдруг?

    ialexander20.11.2009 00:28
    Рейтинг
     
    Re: Запуск 64-битного потока в 32-битном приложении


    А как вы себе это представляете, адресное пространство в любом случае 32-битное в процессе.


    Evgeniy Ryzhkov20.11.2009 00:28
    Рейтинг
     
    Re: Запуск 64-битного потока в 32-битном приложении

    Цитирую -ksili
    Есть ли возможность запуска 64-битного потока в 32-битном приложении? Не процесса, функцией CreateProcess, а именно потока? Я полагаю, скорее всего нет, но вдруг?

    Из MSDN:

    CreateThread - Creates a thread to execute within the virtual address space of the calling process.

    А поскольку в рамках одного адресного пространства нельзя мешать 32 и 64, то ответ - нельзя.

    По этой причине "параллелят" такие смешанные вещи именно процессами.

    В то же время второй строкой в MSDN написано:

    To create a thread that runs in the virtual address space of another process, use the CreateRemoteThread function.

    Может быть в каких-то задачах и подойдет CreateRemoteThread, но эта функция явно менее часто используется программистами.



    General Director (CEO)
    OOO \"Program Verification Systems\" (Co Ltd)

    ksili20.11.2009 01:45
    Рейтинг
     
    Re: Запуск 64-битного потока в 32-битном приложении

    Спасибо за ответы.
    То, что CreateThread не подходит, я так и думал. Просто я думал, может есть какая-то волшебная функция, о которой я не знаю.
    Насчёт CreateRemoteThread, я так понимаю, что для него нужно уже какое-то работающее приложение, в котором будет запускаться создаваемый поток. К чужому так пристаиваться некрасиво, а свое создавать нет смысла, т.к. это тот же самый CreateProcess понадобится.

    Просто надо, чтобы какой-нибудь 64-битный поток/процесс постоянно присутствовал в памяти, пока работает моя программа, вот и ищу способы как это сделать. Запускал 64-битную консольную программу (скрыто, без окна) при помощи CreateProcess, но через некоторое время (минут 15) от винды выскакивает сообщение, что "приложение возможно работает неверно" и она завершает его.


    ialexander20.11.2009 01:55
    Рейтинг
     
    Re: Запуск 64-битного потока в 32-битном приложении

    Цитирую -ksili
    Просто надо, чтобы какой-нибудь 64-битный поток/процесс постоянно присутствовал в памяти, пока работает моя программа, вот и ищу способы как это сделать. Запускал 64-битную консольную программу (скрыто, без окна) при помощи CreateProcess, но через некоторое время (минут 15) от винды выскакивает сообщение, что "приложение возможно работает неверно" и она завершает его.

    Cервис Windows не думали создать? Они как раз для этого и предназначены.


    ksili20.11.2009 22:59
    Рейтинг
     
    Re: Запуск 64-битного потока в 32-битном приложении

    Цитирую -ialexander

    Cервис Windows не думали создать? Они как раз для этого и предназначены.
    Возможно к этому и приду. Просто к сожалению никогда этим не занимался. К тому же я слышал, что на 64-битных системах неподписанный сервис не запустить.


Быстрый переход:  

Статистика форумов Intel Software Network

424 пользователей 501 тем и 5,399 сообщений.

За последние 24 часа появилось 0 новых тем 0 новых сообщений и 0 новых пользователей.

Самая популярная тема за последние 3 дня Конкурс футболок для участников ISN 2012 Больше всего ответов отправлено на сообщение Вот пример распо Наибольшее количество просмотров у сообщения Конкурс футболок для участников ISN 2012

Приветствуем нового пользователя bikerepair8


Пожалуйста, обратитесь к странице Уведомление об оптимизации для более подробной информации относительно производительности и оптимизации в программных продуктах компании Intel.