Связывание 64-битной DLL с Visual Basic 6 - PullRequest
0 голосов
/ 21 января 2010

Я работаю над проектом, использующим DLL, написанную на C, с 32-битными и 64-битными компиляциями DLL по нескольким причинам. Основное приложение написано на Visual Basic 6. Компонент, который обеспечивает функциональность библиотеки DLL C, представляет собой класс в Visual Basic 6, который содержит модуль, полный открытых функций объявления объекта DLL, и этот класс является оболочкой для этих функций в модуле. Поэтому в самом проекте Visual Basic 6 нет ссылок. Пока я полностью закончил кодировать 32-битную версию и доволен ею. Должны ли быть какие-либо опасения по поводу простого изменения имени файла в модуле, чтобы он указывал на 64-битную DLL, о которой я не знаю. Поскольку 64-битная DLL будет вызываться из 32-битной DLL в 32-битном приложении, написанном на Visual Basic 6? Пожалуйста, не ненавидите меня за то, что я все еще работаю на таком старом языке. Это текущий проект, над которым я работаю над обновлением.

Ответы [ 2 ]

4 голосов
/ 21 января 2010

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

2 голосов
/ 21 января 2010

У Рэймонда "The Old New Thing" есть хорошая статья , которая объясняет, почему невозможно выполнить переход с 32-разрядного на 64-разрядное.

...