Мне нужно получить доступ к 32-битной DLL из 64-битного exe - PullRequest
4 голосов
/ 23 сентября 2010

Я знаю, что прочитал все о суррогатном процессе, и мне удалось создать суррогатный COM, но он либо работает в 32-битном, либо все в 64-битном.

Какая будет правильная структура?

1) 32.dll <- 64.com <- 64.exe 2) 32.dll <- 32.com <- 64.exe </p>

Я пробовал оба из вышеперечисленных, но мне это не удалосьвызвать 32.dll?

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Я не слишком информирован о суррогатном COM, на который вы ссылаетесь, но я решил эту проблему (используя 32-битную dll из 64-битного exe), введя COM-объект посередине:

32.dll <-> 32bit-out-of-process-com-server.exe <-> 64.exe.

Извините, это может быть то, что вы имеете в виду под 32.com, не уверен, но убедитесь, что промежуточныйCOM-объект живет в .exe (вне процесса), а не в DLL.Это по той же причине, по которой вы не можете загрузить исходный файл 32.dll в 64-битный процесс.

0 голосов
/ 23 сентября 2010

Это определенно то, что вы хотите: 32.dll <- 32.com <- 64.exe Если это не работает, покажите более подробную информацию, КАК это не работает. </p>

Кроме того, если вы не работаетеДелая много звонков, вы можете общаться через сокеты (просто план резервного копирования).

...