2012-02-28 3 views
1

Я получил исходный код VC++ DLL для проекта USB-устройства, срок действия которого близок. Прямо сейчас я должен назвать эту usb dll из другой программы VB. Но исходный код основан на шаблоне «MFC Extension DLL», который не может быть вызван VB. С другой стороны, «Обычная DLL с MFC статически связана» может быть вызвана программами, написанными на Visual Basic.конвертировать "MFC Extension DLL" в "Regular DLL с MFC статически связаны" в спешке

Есть ли способ, с наименьшим усилием модификации исходного кода, чтобы иметь возможность вызвать эту dll непосредственно из VB?

Я попытался изменить свойства конфигурации проекта/Использование MFC для использования MFC в статической библиотеке. Но есть ошибка сборки.

Сейчас я изменяю исходный код на основе нового шаблона "Regular DLL with MFC", но есть много проблем. Например, я не знаю, могу ли я использовать AFX_EXTENSION_MODULE в своем новом dll-коде.

+0

«Но есть построить ошибку» является самым бесполезным описанием проблемы можно себе представить. Как может кто-нибудь помочь вам с этим описанием? – Roel

ответ

0

Возможно, ваша проблема связана с невыполнением производного объекта CWinApp, который предоставляет услуги, на которые полагаются классы MFC в DLL. Наверное, вы можете просто вбить один, и он будет работать.

Смотрите здесь для получения дополнительной информации:

+1

Это не причина, по которой вы говорите. MFC Extension DLL не может использоваться клиентским приложением, которое не использует одну и ту же версию библиотеки MFC. MFC Extension DLL в основном предназначена для клиентского приложения MFC. – will1978

+0

Да, это так. Так? MFC требует, чтобы существовал объект CWinApp SOMEWHERE. Просто положите его, и вам должно быть хорошо идти. – Ben

+0

Нет, это не так просто. С шаблоном Regular DLL с MFC коды по умолчанию уже имеют CWinApp. Но это не так просто, как копирование исходных кодов в новый шаблон. – will1978

Смежные вопросы