64-битное приложение, связывающееся с 32-битным процессом - PullRequest
3 голосов
/ 13 декабря 2011

У меня 32-битное приложение, использующее 32-битную стороннюю библиотеку. Теперь я должен сделать свое приложение 64-битным, чтобы оно могло использовать 64-битное адресное пространство (большая память). Поскольку я не могу загрузить 32-битную библиотеку в процесс 64-битного приложения, я думаю о создании 32-битной исполняемой оболочки над сторонней библиотекой и связи из моего 64-битного приложения с помощью IPC (именованный канал / сокет). Так что мой вопрос, будет ли их любая проблема в этом? Также, если мне нужно установить мое приложение на 64-битных системах, все файлы, связанные с моим приложением, будут скопированы в каталог «c: \ Program Files». Теперь я могу сохранить свою 32-битную стороннюю оболочку exe в той же папке "c: \ Program Files" или мне нужно скопировать ее в каталог "c: \ Program Files (x86)"?

1 Ответ

3 голосов
/ 13 декабря 2011

Именно так Microsoft рекомендует для решения подобных проблем.Если вы работаете с COM, вы можете сделать сервер COM exe.Для .NET используйте WCF.В вашем случае - родной C ++, никакой COM - файл или канал с отображением в памяти - хороший выбор.

Что касается папки назначения установки - вам нужно проверить это с помощью инструмента, используемого для сборки пакетов установки.Если целевая установка является 64-битной, а один исполняемый файл - 32-битным - инструмент может показывать предупреждение об этом файле.Когда файл выполняется, не имеет значения, находится ли он в Program Files или Program Files (x86), или в любом другом каталоге.

...