Вызов 32-битных файлов lib из 64-битного целевого приложения - PullRequest
4 голосов
/ 08 марта 2011

Я пишу 64-битную целевую программу на С ++. Мне нужно вызывать команды из стороннего .lib-файла, который предназначен для 32-битной среды, однако при попытке этого я получаю ошибку LNK2001. Возможно ли это сделать?

Ответы [ 2 ]

7 голосов
/ 08 марта 2011

Не напрямую, нет;вы не можете связать 32-битный код с 64-битным исполняемым файлом.

Возможно, вы могли бы создать отдельный 32-битный процесс для размещения вашей статической библиотеки и написать API-заглушку в 64-битной программе, которая используетмежпроцессное взаимодействие, чтобы 32-битный процесс выполнял код от вашего имени.

5 голосов
/ 08 марта 2011

Вы не можете сделать это непосредственно в приложении.

Ваш лучший вариант - получить 64-битную версию библиотеки.

Если вы не можете этого сделать, выможет создать отдельное 32-разрядное приложение, которое выступает в качестве посредника между вашей основной программой и библиотекой, используя для связи сокеты или каналы.

...